From abc24fff4285f61854ed75328a8a772d7bda3969 Mon Sep 17 00:00:00 2001 From: Hoang Khanh Nguyen Date: Mon, 13 Feb 2023 15:53:25 +0700 Subject: [PATCH 01/15] WIP: check if reward contract address supports ERC721 --- contracts/LearnToEarn.sol | 4 +++- test/LearnToEarn.test.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/contracts/LearnToEarn.sol b/contracts/LearnToEarn.sol index 1e2e6e3..fc80525 100644 --- a/contracts/LearnToEarn.sol +++ b/contracts/LearnToEarn.sol @@ -8,6 +8,7 @@ import { IERC721Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ER import { ERC165CheckerUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol"; import { ILearnToEarn, Course, Learner } from "./interfaces/ILearnToEarn.sol"; import { INFTReward } from "./interfaces/INFTReward.sol"; +import "hardhat/console.sol"; contract LearnToEarn is ReentrancyGuardUpgradeable, OwnableUpgradeable, ILearnToEarn { using SafeERC20Upgradeable for IERC20Upgradeable; @@ -93,7 +94,8 @@ contract LearnToEarn is ReentrancyGuardUpgradeable, OwnableUpgradeable, ILearnTo _canMintNFT = _rewardAddress.supportsInterface(type(INFTReward).interfaceId); if (!_canMintNFT) { - require(IERC721Upgradeable(_rewardAddress).balanceOf(_msgSender()) >= _budget, "Balance of creator is not enough"); + require(_rewardAddress.supportsInterface(type(IERC721Upgradeable).interfaceId), "Reward contract is not ERC721"); + require(IERC721Upgradeable(_rewardAddress).balanceOf(_msgSender()) >= _budget, "Insufficient creator's balance"); } } diff --git a/test/LearnToEarn.test.ts b/test/LearnToEarn.test.ts index f74dbd7..69e094d 100644 --- a/test/LearnToEarn.test.ts +++ b/test/LearnToEarn.test.ts @@ -105,7 +105,7 @@ describe("LearnToEarn contract", () => { await expect(learnToEarn.connect(creator).createCourse(iouToken.address, TOKEN_1.mul(20), TOKEN_1, timeStart, timeStart - 1, false, true)).to.revertedWith("Invalid time end bonus"); }); - it("[OK]: Create course with bonus is nft that is deployed by system successfully", async () => { + it.only("[OK]: Create course with bonus is nft that is deployed by system successfully", async () => { const NEXT_60_DAYS = Date.now() + ONE_DAY * 60; let tx: ContractTransaction = await learnToEarn.connect(creator).createCourse(nftReward.address, 100, 1, timeStart, NEXT_60_DAYS, false, false); let receipt: ContractReceipt = await tx.wait(); From bbccfb5028fa1528d66a43a88b798a834be054ba Mon Sep 17 00:00:00 2001 From: Hoang Khanh Nguyen Date: Tue, 14 Feb 2023 14:45:26 +0700 Subject: [PATCH 02/15] Small changes in test cases --- test/LearnToEarn.test.ts | 4 ++-- test/integration/LearnToEarnFlow.test.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/LearnToEarn.test.ts b/test/LearnToEarn.test.ts index 69e094d..acc4915 100644 --- a/test/LearnToEarn.test.ts +++ b/test/LearnToEarn.test.ts @@ -96,7 +96,7 @@ describe("LearnToEarn contract", () => { }); it("[Fail]: Creator with external nft contract but balance of creator is not enough", async () => { - await expect(learnToEarn.connect(creator).createCourse(erc721Test.address, 20, 1, timeStart, ONE_DAY * 60, true, false)).to.revertedWith("Balance of creator is not enough"); + await expect(learnToEarn.connect(creator).createCourse(erc721Test.address, 20, 1, timeStart, ONE_DAY * 60, true, false)).to.revertedWith("Insufficient creator's balance"); }); it("[Fail]: Invalid time end bonus", async () => { @@ -105,7 +105,7 @@ describe("LearnToEarn contract", () => { await expect(learnToEarn.connect(creator).createCourse(iouToken.address, TOKEN_1.mul(20), TOKEN_1, timeStart, timeStart - 1, false, true)).to.revertedWith("Invalid time end bonus"); }); - it.only("[OK]: Create course with bonus is nft that is deployed by system successfully", async () => { + it("[OK]: Create course with bonus is nft that is deployed by system successfully", async () => { const NEXT_60_DAYS = Date.now() + ONE_DAY * 60; let tx: ContractTransaction = await learnToEarn.connect(creator).createCourse(nftReward.address, 100, 1, timeStart, NEXT_60_DAYS, false, false); let receipt: ContractReceipt = await tx.wait(); diff --git a/test/integration/LearnToEarnFlow.test.ts b/test/integration/LearnToEarnFlow.test.ts index ec6adc0..974fb6c 100644 --- a/test/integration/LearnToEarnFlow.test.ts +++ b/test/integration/LearnToEarnFlow.test.ts @@ -846,7 +846,8 @@ describe("Integration test LearnToEarn contract", () => { it("Create course 7 with external NFT contract and time bonus to next 45 days but reverted because of have not minted NFT before", async () => { const NEXT_45_DAYS = (await getTimestamp()) + ONE_DAY * 45; - await expect(learnToEarn.connect(creator).createCourse(erc721Test.address, 4, 2,(await getTimestamp()) + 14, NEXT_45_DAYS, false, false)).to.revertedWith("Balance of creator is not enough"); + await expect(learnToEarn.connect(creator).createCourse(erc721Test.address, 4, 2,(await getTimestamp()) + 14, NEXT_45_DAYS, false, false)) + .to.revertedWith("Insufficient creator's balance"); }); it("Creator mint NFTs", async () => { From abba0e082be08a34800c1c672b97e583d139edb7 Mon Sep 17 00:00:00 2001 From: Hoang Khanh Nguyen Date: Tue, 14 Feb 2023 14:46:52 +0700 Subject: [PATCH 03/15] Removed import console.sol --- contracts/LearnToEarn.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/contracts/LearnToEarn.sol b/contracts/LearnToEarn.sol index fc80525..9051941 100644 --- a/contracts/LearnToEarn.sol +++ b/contracts/LearnToEarn.sol @@ -8,7 +8,6 @@ import { IERC721Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ER import { ERC165CheckerUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol"; import { ILearnToEarn, Course, Learner } from "./interfaces/ILearnToEarn.sol"; import { INFTReward } from "./interfaces/INFTReward.sol"; -import "hardhat/console.sol"; contract LearnToEarn is ReentrancyGuardUpgradeable, OwnableUpgradeable, ILearnToEarn { using SafeERC20Upgradeable for IERC20Upgradeable; From c8ee8121fd93caff45f8b0a74421414a38ea6da2 Mon Sep 17 00:00:00 2001 From: phongho01 Date: Tue, 14 Feb 2023 14:51:21 +0700 Subject: [PATCH 04/15] upgrade proxy --- contracts/ERC721Test.sol | 16 ---------------- ...5861179741.json => mumbai_1675861179741.json} | 0 deployed/nft_test_goerli_1676356838824.json | 1 + .../upgraded_arbitrumGoerli_1676257584535.json | 8 +++++++- .../upgraded_auroraTestnet_1675853611049.json | 1 - .../upgraded_auroraTestnet_1676257547654.json | 8 +++++++- deployed/upgraded_goerli_1675766298752.json | 7 ------- deployed/upgraded_goerli_1675853410270.json | 7 ------- deployed/upgraded_goerli_1676257492901.json | 8 +++++++- deployed/upgraded_mumbai_1676257422397.json | 8 +++++++- 10 files changed, 29 insertions(+), 35 deletions(-) rename deployed/{polygonMumbai_1675861179741.json => mumbai_1675861179741.json} (100%) create mode 100644 deployed/nft_test_goerli_1676356838824.json delete mode 100644 deployed/upgraded_auroraTestnet_1675853611049.json delete mode 100644 deployed/upgraded_goerli_1675766298752.json delete mode 100644 deployed/upgraded_goerli_1675853410270.json diff --git a/contracts/ERC721Test.sol b/contracts/ERC721Test.sol index ef7797a..d213201 100644 --- a/contracts/ERC721Test.sol +++ b/contracts/ERC721Test.sol @@ -36,20 +36,4 @@ contract ERC721Test is ERC721URIStorage, Ownable { emit MintedNFT(_to, tokenIds, _uri); } - - function mint(string memory _uri) external { - tokenIds++; - _safeMint(_msgSender(), tokenIds); - _setTokenURI(tokenIds, _uri); - - emit MintedNFT(_msgSender(), tokenIds, _uri); - } - - function mintBatch(string[] memory _uris) external onlyOwner { - for(uint256 i = 0; i < _uris.length; i++) { - tokenIds++; - _safeMint(_msgSender(), tokenIds); - _setTokenURI(tokenIds, _uris[i]); - } - } } \ No newline at end of file diff --git a/deployed/polygonMumbai_1675861179741.json b/deployed/mumbai_1675861179741.json similarity index 100% rename from deployed/polygonMumbai_1675861179741.json rename to deployed/mumbai_1675861179741.json diff --git a/deployed/nft_test_goerli_1676356838824.json b/deployed/nft_test_goerli_1676356838824.json new file mode 100644 index 0000000..0f69d0b --- /dev/null +++ b/deployed/nft_test_goerli_1676356838824.json @@ -0,0 +1 @@ +{"ERC721Test_deploy":"0x05E0A893B47ddd9063d2FFf71d5f2c0f499f47fe"} \ No newline at end of file diff --git a/deployed/upgraded_arbitrumGoerli_1676257584535.json b/deployed/upgraded_arbitrumGoerli_1676257584535.json index c5ce9a6..74880ae 100644 --- a/deployed/upgraded_arbitrumGoerli_1676257584535.json +++ b/deployed/upgraded_arbitrumGoerli_1676257584535.json @@ -1 +1,7 @@ -{"LearnToEarn_proxy":"0x1DAE40f862c69bAa6c1899b34e6b0595D1b39CcC","LearnToEarn_verify":"0xdB24E5a4353D62e382F6b71e1dC4CaFF44ddb062","NFTReward_deploy":"0x9b075656A75a7656749B20B3Edca1F05c6fc272B","TokenFactory_proxy":"0x9955346c16D3805e3Fb5F84Fba9179Da209b121C","TokenFactory_verify":"0xDd19Cf85BC9f83ab5E4C4fcD9248FC462ecd0581"} \ No newline at end of file +{ + "LearnToEarn_proxy": "0x1DAE40f862c69bAa6c1899b34e6b0595D1b39CcC", + "LearnToEarn_verify": "0xdB24E5a4353D62e382F6b71e1dC4CaFF44ddb062", + "NFTReward_deploy": "0x9b075656A75a7656749B20B3Edca1F05c6fc272B", + "TokenFactory_proxy": "0x9955346c16D3805e3Fb5F84Fba9179Da209b121C", + "TokenFactory_verify": "0xDd19Cf85BC9f83ab5E4C4fcD9248FC462ecd0581" +} diff --git a/deployed/upgraded_auroraTestnet_1675853611049.json b/deployed/upgraded_auroraTestnet_1675853611049.json deleted file mode 100644 index 4b3b0b3..0000000 --- a/deployed/upgraded_auroraTestnet_1675853611049.json +++ /dev/null @@ -1 +0,0 @@ -{"LearnToEarn_proxy":"0xB4501DdA26b1179914B29C00a22F67aC18fbB3EC","LearnToEarn_verify":"0xc1E0437e46ee7d40728F055070CBBaa293db893a","NFTReward_deploy":"0x1148f77868B1F392dd1a4508B7d66041631939c2","TokenFactory_proxy":"0xfEEaA5E390e8837B8ffcb1324D1b88090bBD4E63","TokenFactory_verify":"0x635AA6D983E5D7Fc7ac44827d5C4048c703A62E4"} \ No newline at end of file diff --git a/deployed/upgraded_auroraTestnet_1676257547654.json b/deployed/upgraded_auroraTestnet_1676257547654.json index fa20159..21dd471 100644 --- a/deployed/upgraded_auroraTestnet_1676257547654.json +++ b/deployed/upgraded_auroraTestnet_1676257547654.json @@ -1 +1,7 @@ -{"LearnToEarn_proxy":"0xB4501DdA26b1179914B29C00a22F67aC18fbB3EC","LearnToEarn_verify":"0x83E2F84DC141474Fdd1a12900fDc48d35Ff16Cec","NFTReward_deploy":"0x1148f77868B1F392dd1a4508B7d66041631939c2","TokenFactory_proxy":"0xfEEaA5E390e8837B8ffcb1324D1b88090bBD4E63","TokenFactory_verify":"0x635AA6D983E5D7Fc7ac44827d5C4048c703A62E4"} \ No newline at end of file +{ + "LearnToEarn_proxy": "0xB4501DdA26b1179914B29C00a22F67aC18fbB3EC", + "LearnToEarn_verify": "0x83E2F84DC141474Fdd1a12900fDc48d35Ff16Cec", + "NFTReward_deploy": "0x1148f77868B1F392dd1a4508B7d66041631939c2", + "TokenFactory_proxy": "0xfEEaA5E390e8837B8ffcb1324D1b88090bBD4E63", + "TokenFactory_verify": "0x635AA6D983E5D7Fc7ac44827d5C4048c703A62E4" +} diff --git a/deployed/upgraded_goerli_1675766298752.json b/deployed/upgraded_goerli_1675766298752.json deleted file mode 100644 index caa050a..0000000 --- a/deployed/upgraded_goerli_1675766298752.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "LearnToEarn_proxy": "0x9b075656A75a7656749B20B3Edca1F05c6fc272B", - "LearnToEarn_verify": "0x522BC2d2A2563A146C129a3A8Aed212e23e591eD", - "NFTReward_deploy": "0xD35Eb1Bc1D82C1c31650D18A998cc7b2FCe588b2", - "TokenFactory_proxy": "0xf0c39397540324d22C44f0e7583D5C03a25d352b", - "TokenFactory_verify": "0x720a8D5D3A67eAa5Abb72d5525A432729c42A467" -} diff --git a/deployed/upgraded_goerli_1675853410270.json b/deployed/upgraded_goerli_1675853410270.json deleted file mode 100644 index 8d6da5c..0000000 --- a/deployed/upgraded_goerli_1675853410270.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "LearnToEarn_proxy": "0x9b075656A75a7656749B20B3Edca1F05c6fc272B", - "LearnToEarn_verify": "0x80c2df05B7886464D81818aEe79fe9bEa2B57D36", - "NFTReward_deploy": "0xD35Eb1Bc1D82C1c31650D18A998cc7b2FCe588b2", - "TokenFactory_proxy": "0xf0c39397540324d22C44f0e7583D5C03a25d352b", - "TokenFactory_verify": "0x720a8D5D3A67eAa5Abb72d5525A432729c42A467" -} diff --git a/deployed/upgraded_goerli_1676257492901.json b/deployed/upgraded_goerli_1676257492901.json index cf13c82..8dc9ab8 100644 --- a/deployed/upgraded_goerli_1676257492901.json +++ b/deployed/upgraded_goerli_1676257492901.json @@ -1 +1,7 @@ -{"LearnToEarn_proxy":"0x9b075656A75a7656749B20B3Edca1F05c6fc272B","LearnToEarn_verify":"0x2e82555B18f82E91408f129577937E3C145380ec","NFTReward_deploy":"0xD35Eb1Bc1D82C1c31650D18A998cc7b2FCe588b2","TokenFactory_proxy":"0xf0c39397540324d22C44f0e7583D5C03a25d352b","TokenFactory_verify":"0x720a8D5D3A67eAa5Abb72d5525A432729c42A467"} \ No newline at end of file +{ + "LearnToEarn_proxy": "0x9b075656A75a7656749B20B3Edca1F05c6fc272B", + "LearnToEarn_verify": "0x2e82555B18f82E91408f129577937E3C145380ec", + "NFTReward_deploy": "0xD35Eb1Bc1D82C1c31650D18A998cc7b2FCe588b2", + "TokenFactory_proxy": "0xf0c39397540324d22C44f0e7583D5C03a25d352b", + "TokenFactory_verify": "0x720a8D5D3A67eAa5Abb72d5525A432729c42A467" +} diff --git a/deployed/upgraded_mumbai_1676257422397.json b/deployed/upgraded_mumbai_1676257422397.json index f2d237f..2e5fe91 100644 --- a/deployed/upgraded_mumbai_1676257422397.json +++ b/deployed/upgraded_mumbai_1676257422397.json @@ -1 +1,7 @@ -{"LearnToEarn_proxy":"0xE03154264512Af7a13d194B67bC24B242831166E","LearnToEarn_verify":"0x64f00e6b5297a5c3c6fB93145242D475df9a2910","NFTReward_deploy":"0xc1E0437e46ee7d40728F055070CBBaa293db893a","TokenFactory_proxy":"0x409A82938cc91d9B3314c19884cda613Aaa69B7B","TokenFactory_verify":"0x4b669F76f58183bd890Def76c3e65C95d4b5481B"} \ No newline at end of file +{ + "LearnToEarn_proxy": "0xE03154264512Af7a13d194B67bC24B242831166E", + "LearnToEarn_verify": "0x64f00e6b5297a5c3c6fB93145242D475df9a2910", + "NFTReward_deploy": "0xc1E0437e46ee7d40728F055070CBBaa293db893a", + "TokenFactory_proxy": "0x409A82938cc91d9B3314c19884cda613Aaa69B7B", + "TokenFactory_verify": "0x4b669F76f58183bd890Def76c3e65C95d4b5481B" +} From a0aacdf32941c50945f3c9d2e775ddd47fdc784f Mon Sep 17 00:00:00 2001 From: phongho01 Date: Wed, 15 Mar 2023 09:24:07 +0700 Subject: [PATCH 05/15] add test --- contracts/LearnToEarnTest.sol | 56 +++++++++++++++++++++++++++++++++++ contracts/MyContract.sol | 34 +++++++++++++++++++++ contracts/test.py | 31 +++++++++++++++++++ 3 files changed, 121 insertions(+) create mode 100644 contracts/LearnToEarnTest.sol create mode 100644 contracts/MyContract.sol create mode 100644 contracts/test.py diff --git a/contracts/LearnToEarnTest.sol b/contracts/LearnToEarnTest.sol new file mode 100644 index 0000000..d2d4e8e --- /dev/null +++ b/contracts/LearnToEarnTest.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.16; +import { LearnToEarn, Course } from "./LearnToEarn.sol"; +import { ERC721Test } from "./ERC721Test.sol"; + +contract LearnToEarnTest { + LearnToEarn learnToEarn; + ERC721Test erc721Test; + + constructor() { + learnToEarn = new LearnToEarn(); + learnToEarn.initialize(); + + erc721Test = new ERC721Test("Certificate", "PIONCE"); + } + + function _generateId(uint256 _nonce) private view returns (bytes32) { + return keccak256(abi.encodePacked(msg.sender, blockhash(block.number - 1), _nonce)); + } + + function test_createCourse() public { + address rewardAddress = address(0x1); + uint256 budget = 100; + uint256 bonus = 10; + uint256 timeStart = block.timestamp; + uint256 timeEndBonus = timeStart + 1 days; + bool isUsingDuration = true; + bool isBonusToken = true; + + learnToEarn.createCourse( + rewardAddress, + budget, + bonus, + timeStart, + timeEndBonus, + isUsingDuration, + isBonusToken + ); + + bytes32 courseId = _generateId(0); + + // Assert that the course data was stored correctly + Course memory course = learnToEarn.getCourseData(courseId); + assert(course.creator == address(this)); + assert(course.rewardAddress == rewardAddress); + assert(course.budget == budget); + assert(course.budgetAvailable == budget); + assert(course.bonus == bonus); + assert(course.timeCreated == timeStart); + assert(course.timeEndBonus == timeEndBonus); + assert(course.timeRemoved == 0); + assert(course.isUsingDuration == isUsingDuration); + assert(course.isBonusToken == isBonusToken); + assert(course.canMintNFT == false); + } +} \ No newline at end of file diff --git a/contracts/MyContract.sol b/contracts/MyContract.sol new file mode 100644 index 0000000..d5cd9c8 --- /dev/null +++ b/contracts/MyContract.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +contract MyContract { + uint256 public x; + + function setX(uint256 _x) public { + x = _x; + } +} + +import "github.com/crytic/echidna/blob/master/contracts/echidna.sol"; + +contract TestMyContract { + using Echidna for Echidna.Test; + + MyContract public myContract; + + function setUp() public { + myContract = new MyContract(); + } + + function test_setX() public { + Echidna.Test memory test = myContract.echidna_test(); + + // Ensure x is correctly set + test.call(myContract.setX(1)); + Echidna.assert(test, myContract.x() == 1); + + // Ensure x is correctly updated + test.call(myContract.setX(2)); + Echidna.assert(test, myContract.x() == 2); + } +} \ No newline at end of file diff --git a/contracts/test.py b/contracts/test.py new file mode 100644 index 0000000..b598c58 --- /dev/null +++ b/contracts/test.py @@ -0,0 +1,31 @@ +import echidna +from echidna import test, property + +echidna.config.ENVIRONMENT = "debug" + +contract_source = "" + +def test_set_value(): + # Create a new instance of the contract + my_contract = MyContract() + + # Set the value to 42 + my_contract.setValue(42) + + # Assert that the value was set correctly + assert my_contract.value == 42 + +# Define the Echidna property function +@property +def value_is_greater_than_100(): + # Create a new instance of the contract + my_contract = MyContract() + + # Set the value to 42 + my_contract.setValue(42) + + # Assert that the value is greater than 100 + assert my_contract.value > 100 + +# Compile and run the tests +echidna.testing.TestBuilder().build_and_run(contract_source) \ No newline at end of file From 3605e1d88e92382b42e7d77a60d08f6276c18661 Mon Sep 17 00:00:00 2001 From: phongho01 Date: Thu, 16 Mar 2023 16:11:10 +0700 Subject: [PATCH 06/15] push action --- contracts/MyContract.sol | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 contracts/MyContract.sol diff --git a/contracts/MyContract.sol b/contracts/MyContract.sol deleted file mode 100644 index d5cd9c8..0000000 --- a/contracts/MyContract.sol +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -contract MyContract { - uint256 public x; - - function setX(uint256 _x) public { - x = _x; - } -} - -import "github.com/crytic/echidna/blob/master/contracts/echidna.sol"; - -contract TestMyContract { - using Echidna for Echidna.Test; - - MyContract public myContract; - - function setUp() public { - myContract = new MyContract(); - } - - function test_setX() public { - Echidna.Test memory test = myContract.echidna_test(); - - // Ensure x is correctly set - test.call(myContract.setX(1)); - Echidna.assert(test, myContract.x() == 1); - - // Ensure x is correctly updated - test.call(myContract.setX(2)); - Echidna.assert(test, myContract.x() == 2); - } -} \ No newline at end of file From 5adeaac4edb79719885a05e11538ba09f9b0ffa2 Mon Sep 17 00:00:00 2001 From: phongho01 Date: Thu, 16 Mar 2023 16:15:43 +0700 Subject: [PATCH 07/15] echidna --- .github/workflows/Echidna.yml | 34 + .openzeppelin/goerli.json | 235 +++ .openzeppelin/polygon-mumbai.json | 235 +++ .openzeppelin/unknown-1313161555.json | 235 +++ .openzeppelin/unknown-31337.json | 1693 ++++++++++------- .openzeppelin/unknown-421613.json | 235 +++ crytic-export/combined_solc.json | 1 + ...pgraded_arbitrumGoerli_1676361848436.json} | 2 +- ...upgraded_auroraTestnet_1676361808540.json} | 2 +- ...son => upgraded_goerli_1676361686901.json} | 2 +- ...son => upgraded_mumbai_1676361772195.json} | 2 +- package.json | 3 + scripts/upgrade-learn-to-earn.ts | 2 +- 13 files changed, 1947 insertions(+), 734 deletions(-) create mode 100644 .github/workflows/Echidna.yml create mode 100644 crytic-export/combined_solc.json rename deployed/{upgraded_arbitrumGoerli_1676257584535.json => upgraded_arbitrumGoerli_1676361848436.json} (80%) rename deployed/{upgraded_auroraTestnet_1676257547654.json => upgraded_auroraTestnet_1676361808540.json} (80%) rename deployed/{upgraded_goerli_1676257492901.json => upgraded_goerli_1676361686901.json} (80%) rename deployed/{upgraded_mumbai_1676257422397.json => upgraded_mumbai_1676361772195.json} (80%) diff --git a/.github/workflows/Echidna.yml b/.github/workflows/Echidna.yml new file mode 100644 index 0000000..f51a7d1 --- /dev/null +++ b/.github/workflows/Echidna.yml @@ -0,0 +1,34 @@ +name: Echidna Fuzzer +on: pull_request + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup node LTS + uses: actions/setup-node@v3 + with: + node-version: 14.18.2 + + - name: Install packages + run: | + cp .env.dev .env + npm install + - name: Compile contracts + run: npx hardhat compile + + - name: Run Echidna + uses: crytic/echidna-action@v2 + with: + solc-version: 0.8.16 + files: . + contract: ReBakedDAO + test-mode: exploration + crytic-args: --hardhat-ignore-compile \ No newline at end of file diff --git a/.openzeppelin/goerli.json b/.openzeppelin/goerli.json index 838894e..f624378 100644 --- a/.openzeppelin/goerli.json +++ b/.openzeppelin/goerli.json @@ -2408,6 +2408,241 @@ } } } + }, + "8564a9bc3d42b1604cd9ed8bfef0ddc8cc8b2ee693b88d00c9eb61147d10b2d6": { + "address": "0x3BC749cbcF5C6130D47978c52dAfeb566edC47EC", + "txHash": "0xa7c5644c36781daa0f2ae654c3019cb8ef0c822632f86d7ec1118b484b63ee56", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "_status", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:38" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)49_storage", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:74" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_owner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "courseData", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(Course)5371_storage)", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:17" + }, + { + "label": "learnerData", + "offset": 0, + "slot": "152", + "type": "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)5381_storage))", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(Learner)5381_storage)": { + "label": "mapping(address => struct Learner)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)5381_storage))": { + "label": "mapping(bytes32 => mapping(address => struct Learner))", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Course)5371_storage)": { + "label": "mapping(bytes32 => struct Course)", + "numberOfBytes": "32" + }, + "t_struct(Course)5371_storage": { + "label": "struct Course", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "rewardAddress", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "budget", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "budgetAvailable", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "bonus", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "totalLearnersClaimedBonus", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "timeCreated", + "type": "t_uint256", + "offset": 0, + "slot": "6" + }, + { + "label": "timeEndBonus", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "timeRemoved", + "type": "t_uint256", + "offset": 0, + "slot": "8" + }, + { + "label": "isBonusToken", + "type": "t_bool", + "offset": 0, + "slot": "9" + }, + { + "label": "canMintNFT", + "type": "t_bool", + "offset": 1, + "slot": "9" + }, + { + "label": "isUsingDuration", + "type": "t_bool", + "offset": 2, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(Learner)5381_storage": { + "label": "struct Learner", + "members": [ + { + "label": "timeStarted", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "timeCompleted", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "timeRewarded", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "nftIds", + "type": "t_array(t_uint256)dyn_storage", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } } } } diff --git a/.openzeppelin/polygon-mumbai.json b/.openzeppelin/polygon-mumbai.json index 6c1f27f..4a2ced1 100644 --- a/.openzeppelin/polygon-mumbai.json +++ b/.openzeppelin/polygon-mumbai.json @@ -581,6 +581,241 @@ } } } + }, + "8564a9bc3d42b1604cd9ed8bfef0ddc8cc8b2ee693b88d00c9eb61147d10b2d6": { + "address": "0xe04391d3337D9031c7cde8985A4aC2Be092f563d", + "txHash": "0xb34bbc15ea4b48b472a046c8ff67e51e80138fcee32a1b7d4613ce5a27fac64e", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "_status", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:38" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)49_storage", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:74" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_owner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "courseData", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(Course)3448_storage)", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:17" + }, + { + "label": "learnerData", + "offset": 0, + "slot": "152", + "type": "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)3458_storage))", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(Learner)3458_storage)": { + "label": "mapping(address => struct Learner)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)3458_storage))": { + "label": "mapping(bytes32 => mapping(address => struct Learner))", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Course)3448_storage)": { + "label": "mapping(bytes32 => struct Course)", + "numberOfBytes": "32" + }, + "t_struct(Course)3448_storage": { + "label": "struct Course", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "rewardAddress", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "budget", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "budgetAvailable", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "bonus", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "totalLearnersClaimedBonus", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "timeCreated", + "type": "t_uint256", + "offset": 0, + "slot": "6" + }, + { + "label": "timeEndBonus", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "timeRemoved", + "type": "t_uint256", + "offset": 0, + "slot": "8" + }, + { + "label": "isBonusToken", + "type": "t_bool", + "offset": 0, + "slot": "9" + }, + { + "label": "canMintNFT", + "type": "t_bool", + "offset": 1, + "slot": "9" + }, + { + "label": "isUsingDuration", + "type": "t_bool", + "offset": 2, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(Learner)3458_storage": { + "label": "struct Learner", + "members": [ + { + "label": "timeStarted", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "timeCompleted", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "timeRewarded", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "nftIds", + "type": "t_array(t_uint256)dyn_storage", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } } } } diff --git a/.openzeppelin/unknown-1313161555.json b/.openzeppelin/unknown-1313161555.json index 3007331..4a4834a 100644 --- a/.openzeppelin/unknown-1313161555.json +++ b/.openzeppelin/unknown-1313161555.json @@ -1055,6 +1055,241 @@ } } } + }, + "8564a9bc3d42b1604cd9ed8bfef0ddc8cc8b2ee693b88d00c9eb61147d10b2d6": { + "address": "0x17EaEAA01C2CffE73907Be039c09e1445FdEb69E", + "txHash": "0xd184667535a9a2f3f917eac271c116148cd9ae75ac1e90bf2615713ace06efb3", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "_status", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:38" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)49_storage", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:74" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_owner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "courseData", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(Course)3448_storage)", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:17" + }, + { + "label": "learnerData", + "offset": 0, + "slot": "152", + "type": "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)3458_storage))", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(Learner)3458_storage)": { + "label": "mapping(address => struct Learner)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)3458_storage))": { + "label": "mapping(bytes32 => mapping(address => struct Learner))", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Course)3448_storage)": { + "label": "mapping(bytes32 => struct Course)", + "numberOfBytes": "32" + }, + "t_struct(Course)3448_storage": { + "label": "struct Course", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "rewardAddress", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "budget", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "budgetAvailable", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "bonus", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "totalLearnersClaimedBonus", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "timeCreated", + "type": "t_uint256", + "offset": 0, + "slot": "6" + }, + { + "label": "timeEndBonus", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "timeRemoved", + "type": "t_uint256", + "offset": 0, + "slot": "8" + }, + { + "label": "isBonusToken", + "type": "t_bool", + "offset": 0, + "slot": "9" + }, + { + "label": "canMintNFT", + "type": "t_bool", + "offset": 1, + "slot": "9" + }, + { + "label": "isUsingDuration", + "type": "t_bool", + "offset": 2, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(Learner)3458_storage": { + "label": "struct Learner", + "members": [ + { + "label": "timeStarted", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "timeCompleted", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "timeRewarded", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "nftIds", + "type": "t_array(t_uint256)dyn_storage", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } } } } diff --git a/.openzeppelin/unknown-31337.json b/.openzeppelin/unknown-31337.json index 442d855..ad695de 100644 --- a/.openzeppelin/unknown-31337.json +++ b/.openzeppelin/unknown-31337.json @@ -1,8 +1,8 @@ { "manifestVersion": "3.2", "admin": { - "address": "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9", - "txHash": "0x5ecc801bf21c1345c491e0e1bc3e02113f1fcee9b467a9316c5ef5173bbc8758" + "address": "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82", + "txHash": "0xebb9a87f16cab7d0b9f0548ec59302058a7894600f5a34cfb4ded0e0b668604f" }, "proxies": [ { @@ -1756,1848 +1756,1848 @@ "kind": "transparent" }, { - "address": "0xC32609C91d6B6b51D48f2611308FEf121B02041f", - "txHash": "0x70a0be82a35248f34d4c13f70b9363c0c6e464372fcfddfb039bf67dffcb9b90", + "address": "0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6", + "txHash": "0x0bc29a63d25dab38349b636173d70352f9d9a7afb42b52ac918c5474b6820353", "kind": "transparent" }, { - "address": "0x262e2b50219620226C5fB5956432A88fffd94Ba7", - "txHash": "0xc41e41f1828cc238b7eeb7030162548b1a3096b3e640dacf962688fa8ec6ce71", + "address": "0x610178dA211FEF7D417bC0e6FeD39F05609AD788", + "txHash": "0xbf167b7e157780093c38ebad9e6255428c6a823061d6f32e101f69d8b3ec0b5b", "kind": "transparent" }, { - "address": "0x90c84237fDdf091b1E63f369AF122EB46000bc70", - "txHash": "0xa33df5bea63f000521da7f70b2b0c162af4523e9e6211d4c3b800271f1efca26", + "address": "0x0B306BF915C4d645ff596e518fAf3F9669b97016", + "txHash": "0xcad1cef10d1df8be3010d3a5dfd9db6b8f24347c1b6267817c3a53235353d5ff", "kind": "transparent" }, { - "address": "0x3D63c50AD04DD5aE394CAB562b7691DD5de7CF6f", - "txHash": "0x8bc71b6aa97ba1cd877466742a504c49e417fe662669b4a2b081d0276bb43ea7", + "address": "0x322813Fd9A801c5507c9de605d63CEA4f2CE6c44", + "txHash": "0xc299c166c1fcb70a438e1fbbe1dfeb48415cb1ee3b29f80e293cd25f08c1f065", "kind": "transparent" }, { - "address": "0x124dDf9BdD2DdaD012ef1D5bBd77c00F05C610DA", - "txHash": "0x8929fbedf33ce78fef48e3e3f0b8804428cefd6353607c2b1558b0a7de379b22", + "address": "0x1c85638e118b37167e9298c2268758e058DdfDA0", + "txHash": "0x9bf930e349077e3ff7eeffbfbba2363d61052d1bcdb8f9208efeec2ab23a060f", "kind": "transparent" }, { - "address": "0xe044814c9eD1e6442Af956a817c161192cBaE98F", - "txHash": "0x70988d9f2d2d26af925c3ca36f7197984bbbd88f0cd12d8eb152edd9650f1289", + "address": "0x367761085BF3C12e5DA2Df99AC6E1a824612b8fb", + "txHash": "0xa2aca7760d8007a373403092f7f0dc0d00b268e09d55627191d04d3e89fd2829", "kind": "transparent" }, { - "address": "0xe14058B1c3def306e2cb37535647A04De03Db092", - "txHash": "0xb0d3084fd2e7f02d0e0e65b435b76cfe658be19e4a2851e1a075a8e45fab01f1", + "address": "0x18E317A7D70d8fBf8e6E893616b52390EbBdb629", + "txHash": "0x3f4f3399afa90c54c53fb08a722eb3fd61b89bc091f840541505c5fd6e047a30", "kind": "transparent" }, { - "address": "0x74ef2B06A1D2035C33244A4a263FF00B84504865", - "txHash": "0x070d9a910601f2a152b8ddc431485d82c605ffa67247ab4099bce33bae995849", + "address": "0xD0141E899a65C95a556fE2B27e5982A6DE7fDD7A", + "txHash": "0x6060bf413116da11e06e3616f05c3a87f98722a46d961ff11319333338027d31", "kind": "transparent" }, { - "address": "0x6f2E42BB4176e9A7352a8bF8886255Be9F3D2d13", - "txHash": "0xcfa2a39f24fffade54a8bde60574921a0fcc0333a6686a2e7a749a7fd8ff6493", + "address": "0x07882Ae1ecB7429a84f1D53048d35c4bB2056877", + "txHash": "0x6ea7dde8b404ad0c25a45926ffae88d6de706d4e884bc8fa01cae3b3090b9106", "kind": "transparent" }, { - "address": "0xA3f7BF5b0fa93176c260BBa57ceE85525De2BaF4", - "txHash": "0x28edb49ea4da17eb7224a989214caa015e633e376a836f715eb44aff79f39be8", + "address": "0x5bf5b11053e734690269C6B9D438F8C9d48F528A", + "txHash": "0xa5a467edb2b8e6fc36ccc0a7df5053df14dae295182b9eac2118f7eb20ea0f38", "kind": "transparent" }, { - "address": "0xa195ACcEB1945163160CD5703Ed43E4f78176a54", - "txHash": "0xdb30c45dd74aaa6c74e8d73368a1b84f6b686e9cf711f34c160d1a9c7c44f854", + "address": "0xffa7CA1AEEEbBc30C874d32C7e22F052BbEa0429", + "txHash": "0xcabe4220619db70f1b47bc1e91b41dfdb890b2d5d2ab6f12273979c8e3d2d580", "kind": "transparent" }, { - "address": "0x6212cb549De37c25071cF506aB7E115D140D9e42", - "txHash": "0xb13bd3fbeda1eb370b19a3b200d9c30f0f235bf64bd7c371b44f6cfa4009c358", + "address": "0x1f10F3Ba7ACB61b2F50B9d6DdCf91a6f787C0E82", + "txHash": "0x7c85887c44345b20861098420f24abe9f80d7d44d4c4f0e43f5ae8a6b8d3889d", "kind": "transparent" }, { - "address": "0x46d4674578a2daBbD0CEAB0500c6c7867999db34", - "txHash": "0xea55e2fa28bda07583ae50e6197d36e152ebea98cbc717779a2dba1a4afa7ef6", + "address": "0x38a024C0b412B9d1db8BC398140D00F5Af3093D4", + "txHash": "0xdffaf18c1a2fcbf735d6a24c2a5135dc8d3165db5e2b2bba7c65bb64a408037a", "kind": "transparent" }, { - "address": "0x9155497EAE31D432C0b13dBCc0615a37f55a2c87", - "txHash": "0xcb0e5e66e3e36b6637638d9912f7dc9e6077d25434f57a5ef66777fdf11d353e", + "address": "0x40918Ba7f132E0aCba2CE4de4c4baF9BD2D7D849", + "txHash": "0x0800b0acd9e098b212854c2b3be2533deca93c7e7ac10cd9bfbf80cd9578c2f7", "kind": "transparent" }, { - "address": "0x04d7478fDF318C3C22cECE62Da9D78ff94807D77", - "txHash": "0xca805f12eba1cdb3b0688da98fbd3d7c13cf2b1825565d08c4fda1353fe47941", + "address": "0x99dBE4AEa58E518C50a1c04aE9b48C9F6354612f", + "txHash": "0x5d15a6295203a9584e41bbf513eba8bd914b0d0def94f90bf8826a04adb049ae", "kind": "transparent" }, { - "address": "0xd9abC93F81394Bd161a1b24B03518e0a570bDEAd", - "txHash": "0xcdea17f15635d806d21c1123d599aa78918f980c5d7b060fa15ad2c4d7a5ca1c", + "address": "0x19cEcCd6942ad38562Ee10bAfd44776ceB67e923", + "txHash": "0x23bd1ca1b379d600ba66bca89ae724ead602bbe70d2bce4dc12712805e3b13da", "kind": "transparent" }, { - "address": "0x89ec9355b1Bcc964e576211c8B011BD709083f8d", - "txHash": "0x52f2351c0a8004440ac354585694262a29ff53bbf2f563baccd95b545c5b38fa", + "address": "0x927b167526bAbB9be047421db732C663a0b77B11", + "txHash": "0xfedab89a178a0196780d98c58d80fd68a2b8bc9ba6f17179223bfcb73cd71f3d", "kind": "transparent" }, { - "address": "0x72662E4da74278430123cE51405c1e7A1B87C294", - "txHash": "0xc2f3537b1faf08ecda000126ff0b59c254c3e383ec9613e52d792f798b8ce12f", + "address": "0xFD6F7A6a5c21A3f503EBaE7a473639974379c351", + "txHash": "0x9dd79df46f4513a6884f59b1578f630cc91a512148fe5b32f0c5a8237ee76c78", "kind": "transparent" }, { - "address": "0x0B1a87021ec75fBaE919b1e86b2B1335FFC8F4d3", - "txHash": "0x7bc79f045871388eba66e28e5848278a8ed92c649c88090e2753314d7ca0d9c7", + "address": "0x5302E909d1e93e30F05B5D6Eea766363D14F9892", + "txHash": "0xffd1f7a850039148a5a2093b78014057cebe11141db050b153f800c36e60e559", "kind": "transparent" }, { - "address": "0x18eb8AF587dcd7E4F575040F6D800a6B5Cef6CAf", - "txHash": "0x8f91b9df55a5a391175d39d6af14e171e355e4f77410e71058707bd06f3d92c4", + "address": "0x4bf010f1b9beDA5450a8dD702ED602A104ff65EE", + "txHash": "0xacd1cd4bce8810cb305d8a8381aed445e9df6b5c0d54ac9c07e520831914ea50", "kind": "transparent" }, { - "address": "0xa4d0806d597146df93796A38435ABB2a3cb96677", - "txHash": "0x6150a435ab9ab235b3b484b4eaa69e9ecc683a243fe494b941b5ba45db6297cd", + "address": "0x96F3Ce39Ad2BfDCf92C0F6E2C2CAbF83874660Fc", + "txHash": "0x2d103f965f9c046818bd827296f85bc5261fe0e8769f86813599ca7ad254c397", "kind": "transparent" }, { - "address": "0xAE246E208ea35B3F23dE72b697D47044FC594D5F", - "txHash": "0x5add0c5c94a3ca5295eaebabc5a06c0922345c6393f7034a29f927dd723884ed", + "address": "0xde2Bd2ffEA002b8E84ADeA96e5976aF664115E2c", + "txHash": "0x17aea62be040b7ed6375a3e38f9fd9329cc81ef25d3143c2803b4540c7547e1b", "kind": "transparent" }, { - "address": "0xD56e6F296352B03C3c3386543185E9B8c2e5Fd0b", - "txHash": "0xdafa411813f74a4b113df8db6b112d08a04ab7d417a6bcaae7411825897d0b83", + "address": "0x870526b7973b56163a6997bB7C886F5E4EA53638", + "txHash": "0x0404ea5a423b5f41708bc2185bb930932ebee41e85fa3c618f74b9ab2c71a327", "kind": "transparent" }, { - "address": "0xEC7cb8C3EBE77BA6d284F13296bb1372A8522c5F", - "txHash": "0xdd6913bbb6f7a24ebc732df0f0d86b482da1dac9df3318d53c603330579ffd2d", + "address": "0xe1Fd27F4390DcBE165f4D60DBF821e4B9Bb02dEd", + "txHash": "0xfb340a83e7e06a5d2269b551a741c4fedadb3c40e693ef2afed148d49a3e406c", "kind": "transparent" }, { - "address": "0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e", - "txHash": "0x2f3cd5c20991536f62114a4d219f928bfbc6541093660f5dae88bcace0723c6a", + "address": "0xB2b580ce436E6F77A5713D80887e14788Ef49c9A", + "txHash": "0xf7ca0b5f24813594d57078d0709bd9fc3950563561f452d856be890ca7aa0fda", "kind": "transparent" }, { - "address": "0x04F75a27cE2FDC591C71a88f1EcaC7e5Ce44f5Fc", - "txHash": "0xd147bef5d7caafc18b52c1c9a9dddf92ed1c66f2741b564b5c087cd81284e4a1", + "address": "0x66F625B8c4c635af8b74ECe2d7eD0D58b4af3C3d", + "txHash": "0x6dfa6a5adf3e6ef965bb86d99bc1e441d33bb972b0db2008ff4af551217c6c3d", "kind": "transparent" }, { - "address": "0x820638ecd57B55e51CE6EaD7D137962E7A201dD9", - "txHash": "0x20b851121bae9e302b821241c0b9c58f8d6e65357f7eb15eb837aeb11f1c6f64", + "address": "0x74Cf9087AD26D541930BaC724B7ab21bA8F00a27", + "txHash": "0x6ba07ee80482084fe95ba0f46a48b2dd23858c245561a067585e424d71f85a37", "kind": "transparent" }, { - "address": "0x987Aa6E80e995d6A76C4d061eE324fc760Ea9F61", - "txHash": "0x047c5a10f7e30bcfc2b0e37428ffe48d082fdc24ef98da3a9a7d6bb67564cff7", + "address": "0xaca81583840B1bf2dDF6CDe824ada250C1936B4D", + "txHash": "0x17607281a38b7a468ddb59f7247b207a3acd5ad732bce62e698b43021a743ac4", "kind": "transparent" }, { - "address": "0x6B9C4119796C80Ced5a3884027985Fd31830555b", - "txHash": "0x7b26d1e0d28f3e2acd5c558a4dcaaa34a91c3b4b67e04bdb4ba503f9f7ffa530", + "address": "0x5D42EBdBBa61412295D7b0302d6F50aC449Ddb4F", + "txHash": "0x04277c8081379b012223c4156af32009c25a38fa5f5479f39f77d591479e084d", "kind": "transparent" }, { - "address": "0xA8d14b3d9e2589CEA8644BB0f67EB90d21079f8B", - "txHash": "0x92c7b4342dfcf6597b7cac2482f80a078ea6e4c35bfc970737598d07f2b3fdfe", + "address": "0xB06c856C8eaBd1d8321b687E188204C1018BC4E5", + "txHash": "0xaa3e798e26d56391520a45271e41c9b2aae7299258d13b6364257b3d840a4a7b", "kind": "transparent" }, { - "address": "0x716473Fb4E7cD49c7d1eC7ec6d7490A03d9dA332", - "txHash": "0xec68f1272865dae247bf984d3a4f3911bbfd8ac52e910846a3c74c4238f3ce08", + "address": "0xAD523115cd35a8d4E60B3C0953E0E0ac10418309", + "txHash": "0xa6fd55f55f19e817327ca3d8e087a47c4527054bb8510f9475f873edfd511f15", "kind": "transparent" }, { - "address": "0x67Fc5Aa53440518DdbAd4B381fD4b86fFD77B776", - "txHash": "0xbc409c69b624d5e31c90f1c2cc06bbf1496451d2d69ba0bb40558141c0b76bdf", + "address": "0x02df3a3F960393F5B349E40A599FEda91a7cc1A7", + "txHash": "0xcc588c84ac89851e163c1854951039333ef9ec015b5a39ba2d47ab2c1c0d85f7", "kind": "transparent" }, { - "address": "0xf4e55515952BdAb2aeB4010f777E802D61eB384f", - "txHash": "0xcc824cedc9c2d1facfadac4953680de01820899687e7f1a916797910f647d8a1", + "address": "0x1780bCf4103D3F501463AD3414c7f4b654bb7aFd", + "txHash": "0x32082a83f4e385721acfa4d572545d296fb87077aaa4ae4bdd0fe8349d5d2c81", "kind": "transparent" }, { - "address": "0xcE7e5946C14Cdd1f8de4473dB9c20fd65EBd47d0", - "txHash": "0xe7f86a6f53575353097d896f51476ee50a7f962d8b5054b35385868d86e9c31c", + "address": "0x71089Ba41e478702e1904692385Be3972B2cBf9e", + "txHash": "0x6bc35f599376cd7a8a5c3c5bfddd558e525aa2f40870140b4bfc65079ea680c3", "kind": "transparent" }, { - "address": "0x4E76FbE44fa5Dae076a7f4f676250e7941421fbA", - "txHash": "0xa694075135c85059552d6d41cf1e0603006dfddad93e9d31940209e5a037e582", + "address": "0xC66AB83418C20A65C3f8e83B3d11c8C3a6097b6F", + "txHash": "0x18acccf6b3d6d67e0f1ca027a6665b77515fd432c61f6c856d3f9f733f6ce996", "kind": "transparent" }, { - "address": "0x49AeF2C4005Bf572665b09014A563B5b9E46Df21", - "txHash": "0xb5703d5b195a9de45ada2362b8de665b31de3a2a45a0bee421b455ef4735994a", + "address": "0x12Bcb546bC60fF39F1Adfc7cE4605d5Bd6a6A876", + "txHash": "0x1ae72c0fa75b07421baec5176f11449049163d4b302d2e3fbaffc5a85c55fda6", "kind": "transparent" }, { - "address": "0x72F853E9E202600c5017B5A060168603c3ed7368", - "txHash": "0xa1d321550ab3736a78ab228c2782d4459da284d18eab33c32996da30c393bc4f", + "address": "0x9BcC604D4381C5b0Ad12Ff3Bf32bEdE063416BC7", + "txHash": "0x2789c817ee012f138247e043298bb3eee8419c889ab017214d7e3c404bac39e0", "kind": "transparent" }, { - "address": "0x26Df0Ea798971A97Ae121514B32999DfDb220e1f", - "txHash": "0xd0eda354fc5fd272e500781ee6691c27c7e0e0d3483775467aa2356eb335a286", + "address": "0xdFdE6B33f13de2CA1A75A6F7169f50541B14f75b", + "txHash": "0xac6064dc98f20d391ee7ac2731854bab8338363e5483f369be1bfb63237fc06d", "kind": "transparent" }, { - "address": "0xa138575a030a2F4977D19Cc900781E7BE3fD2bc0", - "txHash": "0x9fdee9dd06fdc759fc91f471d1b3684b19d1d8270be49e97fb8d39f9d3f93955", + "address": "0x38A70c040CA5F5439ad52d0e821063b0EC0B52b6", + "txHash": "0x0a422be89d4e7af4231c5d13bfb187251caefa43cf5d40065ed7c7cb6a20f291", "kind": "transparent" }, { - "address": "0xf524930660f75CF602e909C15528d58459AB2A56", - "txHash": "0xfab41dd05bc5da1b889f23d82f24025e14de5ad22dc91ca2f16b445bb1fbe2e3", + "address": "0xf090f16dEc8b6D24082Edd25B1C8D26f2bC86128", + "txHash": "0x152f117a03df4dfd48f7bec32d89ad962721c36d291a2006834fc3e830a508a2", "kind": "transparent" }, { - "address": "0xAAF0F531b7947e8492f21862471d61d5305f7538", - "txHash": "0x7722858688206c872d784220a722921ea7369e521143aae389e5777d73ba06ab", + "address": "0xe039608E695D21aB11675EBBA00261A0e750526c", + "txHash": "0x6ca6e3bb5d851dd2d2e5b4a6e093247ae96c9f73ba491463ec76075de204e188", "kind": "transparent" }, { - "address": "0x81f4f47aa3bBd154171C877b4d70F6C9EeCAb216", - "txHash": "0x1ab41f19451d90156ca7762cc60adc82fb6e79c7c145313095dbac5c8dc3d13b", + "address": "0xe70f935c32dA4dB13e7876795f1e175465e6458e", + "txHash": "0x0c74101887a87cf9763e24adaf03e0109944319853ad45dca023ce4172fe8710", "kind": "transparent" }, { - "address": "0xE5b6F5e695BA6E4aeD92B68c4CC8Df1160D69A81", - "txHash": "0x59667bbc3b42fbaa3610a41927d78ff5babfa6ad716b138346269f571a107798", + "address": "0xccf1769D8713099172642EB55DDFFC0c5A444FE9", + "txHash": "0xf3867ef4477ba07bebf0963147f049b0d3aaf8efb0df11986d21ce631428ad01", "kind": "transparent" }, { - "address": "0x01c93598EeC9131C05a2450Cd033cbd8F82da31e", - "txHash": "0xbfee457090296d4f457c01143b26674dfd284653ff19b12a86af12ac78702e24", + "address": "0x2625760C4A8e8101801D3a48eE64B2bEA42f1E96", + "txHash": "0x72b9d08f5b683e10e64aee406373445eb543f8785743ea6088af4e5d637b0028", "kind": "transparent" }, { - "address": "0x33f4f8bf90d8AA3d19fF812B50e79c15Df0d0b03", - "txHash": "0xb79751c0d739d4015945684c70bbb88a88a1cbf11bbdbfc838b0a4a4953e0e09", + "address": "0xD6b040736e948621c5b6E0a494473c47a6113eA8", + "txHash": "0xafe189b02ee76fcec2fe53bad7127fb911d5fbfec73eaae167e8df3a8990e88c", "kind": "transparent" }, { - "address": "0xE57A305f34fD0B6A55A66e8ec9559e6573100cBe", - "txHash": "0x8f9ca6b1d40672c1f6d8c6b40f9d7005a5816e211b507c6a317bcc1238477e2a", + "address": "0xAdE429ba898c34722e722415D722A70a297cE3a2", + "txHash": "0x48139fd558cc46bf5f20c1a35f1b042811ad9770511ecbebe19320875fce51c4", "kind": "transparent" }, { - "address": "0xB354ECF032e9e14442bE590D9Eaee37d2924B67A", - "txHash": "0x02d5b9851d21dc0906a8fa4a11ee0a46c257702e35d1424f62d8c1e6e8cc40f7", + "address": "0xcE0066b1008237625dDDBE4a751827de037E53D2", + "txHash": "0x68d6e0a57d82f160717ec48fb5cdb714bc5fc3d5cb69e01480268b1903f83137", "kind": "transparent" }, { - "address": "0x00436c9F57dfFd96cECd129c04D9E488c57266cF", - "txHash": "0x8ee64dc49999cd5a570d1d2bf0935c90bc44cb3302ae9fdb07026fb5636215f5", + "address": "0x87006e75a5B6bE9D1bbF61AC8Cd84f05D9140589", + "txHash": "0xec0605d88a6fddef2c38abc9b9e7c63368299366fec44e0fdd872ec0ca375b38", "kind": "transparent" }, { - "address": "0xD962a5F050A5F0a2f8dF82aFc04CF1afFE585082", - "txHash": "0xd3cfa390401b3689f650f5a84a471fb1dac3144f814ba5c68a0ca96dbe1ea194", + "address": "0x8fC8CFB7f7362E44E472c690A6e025B80E406458", + "txHash": "0xb9b4bce8c70fc10b877f425ddb6dee9806e6aea3389bf7a7c1df077758033a4c", "kind": "transparent" }, { - "address": "0x0BbfcD7a557FFB8A70CB0948FF680F0E573bbFf2", - "txHash": "0x0d596ceb8cf21d4405c76cb68485e6ebe70ff2213a0a10a03e3baedfb87e27fc", + "address": "0x359570B3a0437805D0a71457D61AD26a28cAC9A2", + "txHash": "0xfb4f1077ab1b072fe96b3d854af2862e951a2af5b3f67141b266731db1ffae9c", "kind": "transparent" }, { - "address": "0xdABF214E5a833269c192D9d70efDdE174680628D", - "txHash": "0x470e5e8b323b743fc39c839e15ffa873fcd4db079c430ff8184dbf4b37b50cc7", + "address": "0xDde063eBe8E85D666AD99f731B4Dbf8C98F29708", + "txHash": "0xe9bf021cba2f3fe6234953cafde79a639424657ece28771cc587d7f77a57c4da", "kind": "transparent" }, { - "address": "0x81F82957608f74441E085851cA5Cc091b23d17A2", - "txHash": "0x4190146c896598c68c29d0377f24ef245c16ec09a90ece513d33d0eeada2ad1f", + "address": "0x70eE76691Bdd9696552AF8d4fd634b3cF79DD529", + "txHash": "0xe76fbd50ae3890e995fa15f909eb8807b4b78534b1b56b6274c9cf3aa168a0ce", "kind": "transparent" }, { - "address": "0x9a8164cA007ff0899140719E9aEC9a9C889CbF1E", - "txHash": "0x857a5aaacf569766236e5aebc09a04b349a45c69e271650b6a97f80f0b7d4ac3", + "address": "0x67aD6EA566BA6B0fC52e97Bc25CE46120fdAc04c", + "txHash": "0xc88e5a4e99f67088f285fee03d5a6799a1cb8fbc0f545ced922630e25b9c4908", "kind": "transparent" }, { - "address": "0x69F94e46cbC82Ab02781ac4FaFc3580d21f1a888", - "txHash": "0xb4f5e349c9872dc25e0f63cafbb1c4880d4290914029334e8d19e78783bfbb4b", + "address": "0xcD0048A5628B37B8f743cC2FeA18817A29e97270", + "txHash": "0x0c12ca54980b5c0a39afed2241d3700d6f3b80c67f6c5ccdbc39bd19c5405a3e", "kind": "transparent" }, { - "address": "0x5BFaaA02cAb795d576276a19CB1c2D2D2d652717", - "txHash": "0xfe7ea834e5ab2705869ed8875fbfba0931c19ab8ad3e1f9df2d0e97d3d678aed", + "address": "0x8bEe2037448F096900Fd9affc427d38aE6CC0350", + "txHash": "0xd139fa6a4e828672ef5e2cb136b7ecee2412747f51f2831b3c76f909e78243d6", "kind": "transparent" }, { - "address": "0x0462Bc7390a33C8BB748d5c2ad76E93690A365c5", - "txHash": "0x37f058d7bc14303a55d8f1dc079e5c99cd48581b213fe98a49d8a214640925ca", + "address": "0xa722bdA6968F50778B973Ae2701e90200C564B49", + "txHash": "0x14451b9af518e5cc69627e2ea96b8fe691227543d1f5a3c7bb702a4e7b02648e", "kind": "transparent" }, { - "address": "0x1c32f8818e38a50d37d1E98c72B9516a50985227", - "txHash": "0x53615903713668531b92a8d168c9802444e3510634f846636bed3f19c3a62cb6", + "address": "0x967AB65ef14c58bD4DcfFeaAA1ADb40a022140E5", + "txHash": "0x5e7bebb42e097a68d60a8c93031bd18d819ba32be239157797acf92271c22f79", "kind": "transparent" }, { - "address": "0x0BFC626B583e93A5F793Bc2cAa195BDBB2ED9F20", - "txHash": "0x68f9e119ad36bd813c75f168bcc18f2d6ebe9311ccf6c0f197973ea1391338bf", + "address": "0x0aec7c174554AF8aEc3680BB58431F6618311510", + "txHash": "0xccdda93b1b46617eb3d9ea3f34bf305ef0e96686ffed13ff029118049ba3c801", "kind": "transparent" }, { - "address": "0x76d05F58D14c0838EC630C8140eDC5aB7CD159Dc", - "txHash": "0x8a61e302d71aaa9b13882efd7c6c46b94268d0dd587ba5889e53e4a28c3f8c0b", + "address": "0x871ACbEabBaf8Bed65c22ba7132beCFaBf8c27B5", + "txHash": "0xdb5eb2f70aa06917ee4445d749d10f619808e9eaa262b448e38e5b8ff8e331e3", "kind": "transparent" }, { - "address": "0xd2983525E903Ef198d5dD0777712EB66680463bc", - "txHash": "0x5fca9229b20da44f3144666bb04fcc9cbf3275b53a3b01aab4102eff23e05010", + "address": "0xC1e0A9DB9eA830c52603798481045688c8AE99C2", + "txHash": "0x478997b2f71a79609ab722ee6a40227463ce710b63055d37c51e6990ebaa1897", "kind": "transparent" }, { - "address": "0x862E3acDE54f01a4540C4505a4E199214Ff6cD49", - "txHash": "0xa8936ec9b5451e5e77ec4e47dcf9d562e3e30d094f9d5c84675c5b9d772df54a", + "address": "0x1c9fD50dF7a4f066884b58A05D91e4b55005876A", + "txHash": "0xb0c01a75f5d06b74d0a69bd6706bdae5800fc3b0088ed0fa5a7bdb2bcb678392", "kind": "transparent" }, { - "address": "0x37453c92a0E3C63949ba340ee213c6C97931F96D", - "txHash": "0xbf85ab6da2b534336e81a4d7331cc65dad37d052986942e7c3007b6bc2af08bc", + "address": "0x71a0b8A2245A9770A4D887cE1E4eCc6C1d4FF28c", + "txHash": "0x847dc34dd64de21f428914a22de9aee1fbcb7ade2fbe20f42d4814773a29a06a", "kind": "transparent" }, { - "address": "0xAAd4F7BB5FB661181D500829e60010043833a85B", - "txHash": "0xe1b60763743ba6c1a194aea827521bb61cc90634d5e3ab227e4f89cd3d80fa0d", + "address": "0xAe120F0df055428E45b264E7794A18c54a2a3fAF", + "txHash": "0x0989e27c7e04a3f37c145381d55a2e79b970665f72cf06c2c95a15ff5692611a", "kind": "transparent" }, { - "address": "0x2B64822cf4bbDd77d386F51AA2B40c5cdbeb80b5", - "txHash": "0x77e1ead4aa50f7b80821e8d2e6e034d74cbc96744bb87f970c25389eddbd312b", + "address": "0x9Fcca440F19c62CDF7f973eB6DDF218B15d4C71D", + "txHash": "0xef03ca6a3850c9b251622273dfec115bba85e64e5eaf2bd2cbf03789b8d3f132", "kind": "transparent" }, { - "address": "0xCd9BC6cE45194398d12e27e1333D5e1d783104dD", - "txHash": "0xb531c3c5ac8c8360e4338e2f8697cb2555bb9d6fcaf7c6639f017873c13e3a34", + "address": "0x22a9B82A6c3D2BFB68F324B2e8367f346Dd6f32a", + "txHash": "0x37f187c2f8bc58ceb77dd8e249af973553d036311c473a719b93660e3eacb348", "kind": "transparent" }, { - "address": "0xd8E4Af8145A8288537B85878bb2371fa070Aa5eF", - "txHash": "0x650df3dbd878f14853e549e9a828a27a0d9b001a84ac53969875d2e5060a8a71", + "address": "0x7C8BaafA542c57fF9B2B90612bf8aB9E86e22C09", + "txHash": "0xb575ae62efa1837f5c31c779abef6dc3c8b9b83826eeb3bac77d7f67098c5747", "kind": "transparent" }, { - "address": "0x86c64cB21f88fA9E2c46b61c35889E75f08FDce1", - "txHash": "0xaa232771cb0aab5d40e983cee938c6c589702bc70ea2818dadb0a776f72d9bcd", + "address": "0x5e6CB7E728E1C320855587E1D9C6F7972ebdD6D5", + "txHash": "0xfd3ffe24e7fe01c6b8ea37c0b7d1c6499e892354a71af55fb35ea713325fc9a7", "kind": "transparent" }, { - "address": "0xA901DA770A472Caf6E6698261BB02ea58C5d3235", - "txHash": "0x3580fa8e1c8bd78af16f2e81a57fe13a2606ff19120c53e589b276ea03b3de47", + "address": "0x95775fD3Afb1F4072794CA4ddA27F2444BCf8Ac3", + "txHash": "0x9ac0d8bec6bbc57798045fc72390dbd0a5688939909668919396af33be257765", "kind": "transparent" }, { - "address": "0x5f58879Fe3a4330B6D85c1015971Ea6e5175AeDD", - "txHash": "0xd4e299027e3d8ccfdaad0081a0f32e7351edfbe7b49618abf9c5f45fe2ad0bb3", + "address": "0xd3FFD73C53F139cEBB80b6A524bE280955b3f4db", + "txHash": "0xc6fc726e4032525f7d70dd58dc916d78f4c7740e4d7cb19beed045b50327af69", "kind": "transparent" }, { - "address": "0x63ecE4C05B8fB272D16844E96702Ea2f26370982", - "txHash": "0x8bfdaaa815196dee2069ea6bd1f388b71eadbd2c96d55299be359d2af0d050b1", + "address": "0x9fD16eA9E31233279975D99D5e8Fc91dd214c7Da", + "txHash": "0x7839c98420a48f4de43fdc6e918ce23eba94cb3f75e57d46e5ee0e66d19b181d", "kind": "transparent" }, { - "address": "0x8dF2a20225a5577fB173271c3777CF45305e816d", - "txHash": "0x9b7b3096794a63b4d51450921955e955d354bc25923cfbf3e31c9a343e5ca062", + "address": "0x987e855776C03A4682639eEb14e65b3089EE6310", + "txHash": "0xe35ba4df7d77917cdbea12d00daaebf30ae71f7a04a0b5eca1a8acac96331d33", "kind": "transparent" }, { - "address": "0x645B0f55268eF561176f3247D06d0b7742f79819", - "txHash": "0xd49f19eb244b8dc40c25549188fb81cf117b7f6b601272a263368be772753c87", + "address": "0xE8F7d98bE6722d42F29b50500B0E318EF2be4fc8", + "txHash": "0x85db7c964485b62786ab2fdfeeb121faf2f81aeda226ec9f8986e6653b52a847", "kind": "transparent" }, { - "address": "0x8AFB0C54bAE39A5e56b984DF1C4b5702b2abf205", - "txHash": "0x1ae3d3f8208219f0eaa0ba6a8f7324ecac2ac3161b924bc0109e8b111d593b24", + "address": "0x2c8ED11fd7A058096F2e5828799c68BE88744E2F", + "txHash": "0x941114205ffe600bf090358d1005ea173964618bed9243cdb969da7feb51c1a8", "kind": "transparent" }, { - "address": "0x6B763F54D260aFF608CbbAeD8721c96992eC24Db", - "txHash": "0xfec94df2cdf86ef503b2038fac1771197448f427c03125a3f02018b554be3eaa", + "address": "0x75c68e69775fA3E9DD38eA32E554f6BF259C1135", + "txHash": "0xe1f8794a28c285b7e7271eaca153b15fd65b1681b49d31c132779d4799e4372b", "kind": "transparent" }, { - "address": "0x226A19c076a3047a53e5430B14bcDB42dbccA159", - "txHash": "0x521a9f7b8f4ec1ce512f91f2f55becb4db7210ff3b26c5981588578708db5215", + "address": "0x975Ab64F4901Af5f0C96636deA0b9de3419D0c2F", + "txHash": "0x6a53ae4ff1a560bee86ce5f5c50c4ceeb07cff127bba709f5ba7baa354ef1428", "kind": "transparent" }, { - "address": "0x093D305366218D6d09bA10448922F10814b031dd", - "txHash": "0xfa216cf7cdd8ec029f6b24e2e93d67ad2a347a0142111d4f3a6867fd513a2e5e", + "address": "0xCd7c00Ac6dc51e8dCc773971Ac9221cC582F3b1b", + "txHash": "0x76e0ddbfa83261b6824a4ccc92f7a6f652d9202e944f6bd96b5ac9ca11816649", "kind": "transparent" }, { - "address": "0x9581c795DBcaf408E477F6f1908a41BE43093122", - "txHash": "0xc6c8387f568c70e4d4b9d454342d31e35875c9891e1056a7f61c1714925cc1fb", + "address": "0xdF46e54aAadC1d55198A4a8b4674D7a4c927097A", + "txHash": "0x8bb6551888a457699fa92ba5a7168b325269b39f17e5e17a2c79e79565a007b1", "kind": "transparent" }, { - "address": "0x8a6E9a8E0bB561f8cdAb1619ECc4585aaF126D73", - "txHash": "0xa9ddbbc21bf7ee3e394de35131710093b2483877461ca60e17d051aee7278fec", + "address": "0xFD2Cf3b56a73c75A7535fFe44EBABe7723c64719", + "txHash": "0xf25fe32af8db5801973534b21dbfdf4a485ed894386dacb32846dc468eabf726", "kind": "transparent" }, { - "address": "0x492844c46CEf2d751433739fc3409B7A4a5ba9A7", - "txHash": "0x186ef67eb8696eaa83947f13acff4b8b94d48ff2e35a9a7a7959754d75c35072", + "address": "0x666D0c3da3dBc946D5128D06115bb4eed4595580", + "txHash": "0x990986f98ee30a342eca2b5250cec0c855a81f3bbfcb0ba3e60d7fe34c12680d", + "kind": "transparent" + }, + { + "address": "0x1E3b98102e19D3a164d239BdD190913C2F02E756", + "txHash": "0x218cb627e617e13d7c651d4754307bfee4bc77cd055f4e1a721115b1e96a9c8c", + "kind": "transparent" + }, + { + "address": "0x286B8DecD5ED79c962b2d8F4346CD97FF0E2C352", + "txHash": "0x769b0da0d6384519ddd2bc2b757e9ba458dd8f24b96bdec6fd5a5683ed24a892", "kind": "transparent" }, { - "address": "0xC1dC7a8379885676a6Ea08E67b7Defd9a235De71", - "txHash": "0x652e1e23a142b0b237eaac3fdcd20503b88139c8898ddee803dc056f6d1f97f9", + "address": "0x70E5370b8981Abc6e14C91F4AcE823954EFC8eA3", + "txHash": "0x2722d3f8bc7cdf5d333ae69f9e5d39e664ac0c54ce2557be4557842fcb50ee85", "kind": "transparent" }, { - "address": "0xCC9676b9bf25cE45a3a5F88205239aFdDeCF1BC7", - "txHash": "0xa7f7e2fe37992e5a91f9c97e65fe685f27d5e40a5350132a3978a8dce563ad22", + "address": "0x9338CA7d556248055f5751d85cDA7aD6eF254433", + "txHash": "0x847aea5e4fa487a54f832e29eeaed9425f0880451c1fdc0bbaacb62c3e6f84ac", "kind": "transparent" }, { - "address": "0xDC0a0B1Cd093d321bD1044B5e0Acb71b525ABb6b", - "txHash": "0x68bbe7e22f1d23d4ab2042d00fe1411037fa13047c9237241d9231d633eadfd2", + "address": "0x7Cf4be31f546c04787886358b9486ca3d62B9acf", + "txHash": "0x463c66d90784b195990ea7782050234b28a29767cf23acb77f8f3fb1cdf61ea8", "kind": "transparent" }, { - "address": "0x1D87585dF4D48E52436e26521a3C5856E4553e3F", - "txHash": "0x35a809f62b98d43e497cd90531ab39b73c44fba8c0af9e3af53d51f72727501c", + "address": "0x0c626FC4A447b01554518550e30600136864640B", + "txHash": "0x134a79d4bad66a96f13a8febc5c4bd2c6baa72fb676ff5ef0e8fb968c7d3831a", "kind": "transparent" }, { - "address": "0x2B8F5e69C35c1Aff4CCc71458CA26c2F313c3ed3", - "txHash": "0x9d3e02afc58219194c46d7a83fc71e4e34c0dc1ef13766fe33d1bce6489683bc", + "address": "0x2A590C461Db46bca129E8dBe5C3998A8fF402e76", + "txHash": "0x44fadbcb000c9a951e204ab01019e52b9f93f4d68a4d811c8323d4fb92fef9f3", "kind": "transparent" }, { - "address": "0xA899118f4BCCb62F8c6A37887a4F450D8a4E92E0", - "txHash": "0x47bda590191ddffd55a1885a85d0983ce4acb92275cc4f9a3fb61acd3e008fd4", + "address": "0x2F54D1563963fC04770E85AF819c89Dc807f6a06", + "txHash": "0x25ccc006b8c84360f40cf9c6d586b455ace41b9866d8c4e6355a854c4cdc4a5c", "kind": "transparent" }, { - "address": "0xD185B4846E5fd5419fD4D077dc636084BEfC51C0", - "txHash": "0x1b07ab0bc559e44322a87b7fefe57fd39637fe6b897c58dee261ea9121a493f8", + "address": "0x9849832a1d8274aaeDb1112ad9686413461e7101", + "txHash": "0x1336cc9c961af9a0d20467a32c163c1cdba6048122c30063d894bc23c5af214c", "kind": "transparent" }, { - "address": "0xBCF063A9eB18bc3C6eB005791C61801B7cB16fe4", - "txHash": "0xb01249b359a7a83e23bdd6d016c064d5566d7cb218dffa83ea7084a9e32c818b", + "address": "0x4eaB29997D332A666c3C366217Ab177cF9A7C436", + "txHash": "0x1b6cda7c67148e59253b44611a0159788cbfbb5a8c34c75e141f0d5fc02bc5c2", "kind": "transparent" }, { - "address": "0x364C7188028348566E38D762f6095741c49f492B", - "txHash": "0xcd76725337e2d8a57f52764c8cf2cb46a9bd820ce4fd17666ae591cd5b286b7b", + "address": "0x627b9A657eac8c3463AD17009a424dFE3FDbd0b1", + "txHash": "0x9d1710379596039ab6933a88bae81be6280fecef635c5d3a75c87a4232aeaacc", "kind": "transparent" }, { - "address": "0xF2cb3cfA36Bfb95E0FD855C1b41Ab19c517FcDB9", - "txHash": "0x9035914873124ff056a33a021a44a219aabf39a5275e76dba3ebfba68f24a46b", + "address": "0x8E45C0936fa1a65bDaD3222bEFeC6a03C83372cE", + "txHash": "0x491d96afc24bce38448191268f69e7a2b155a0e9afe5f717d0d1924d6852d797", "kind": "transparent" }, { - "address": "0xAB8Eb9F37bD460dF99b11767aa843a8F27FB7A6e", - "txHash": "0xa11e81566363f7f230efe90341e55ea0fd15afb9d3271debf333c10dc1ed7f96", + "address": "0xf4B146FbA71F41E0592668ffbF264F1D186b2Ca8", + "txHash": "0x986cb41433ad27db133f2aa6538a08e09dac63ee758d0c8480b6b8edff03ac59", "kind": "transparent" }, { - "address": "0xbB57FE325e769DEDB1236525a91cDEd842143fA7", - "txHash": "0x9ac319a1245d959286ae05898c7fb2700bb904ccb709c5b8cdf814109f2218d5", + "address": "0x172076E0166D1F9Cc711C77Adf8488051744980C", + "txHash": "0x64b492e1258ec68345ca901a22d89524a7bbdc5f1ac883f9bbd06ff455a23502", "kind": "transparent" }, { - "address": "0x6712008CCD96751d586FdBa0DEf5495E0E22D904", - "txHash": "0x50270bae5b4851ae7b3fa95817c6b047b0514032a075eaff11546113075c2489", + "address": "0x720472c8ce72c2A2D711333e064ABD3E6BbEAdd3", + "txHash": "0x76a4a8f820066b57dcefc049aa1dbb8792ebc4683cd533acd1a2838c1540740b", "kind": "transparent" }, { - "address": "0x1f9c84B161b2c7FFB540BC5354543108cCE37df1", - "txHash": "0xb030a77c749fa2b3a70ae7d43dfdf070bf5b7cf8ac2d2485573724d26390d498", + "address": "0xc0F115A19107322cFBf1cDBC7ea011C19EbDB4F8", + "txHash": "0x6dfed7e5ea7375cf29ba8478f5c09249ec06f18d72c76fc5c5d8f99ee5901092", "kind": "transparent" }, { - "address": "0x87E8f332f34984728Da4c0A008a495A5Ec4E09a2", - "txHash": "0xb1ce0e3a6e4df055df0a2c8973acc3360f9dbe7b990d7ddebea8c8a820926e89", + "address": "0xc96304e3c037f81dA488ed9dEa1D8F2a48278a75", + "txHash": "0xbd77b847b02a9cf9f9cd94020d7187470013980768dba6c3698f5ffa1cfcdbf2", "kind": "transparent" }, { - "address": "0x1E2e9190Cea3A97b5Aa85d9757117F499D31C47d", - "txHash": "0x6464500c3858597839c521bb841a23db0033086787eaa169d397cedf650dca54", + "address": "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707", + "txHash": "0xd737a778d62a7b6d5d916196842651534a6ebbbd7265d205a4f2a9737bd8484a", "kind": "transparent" }, { - "address": "0x53DaB165b879542E9aDFC41c6474A9d797B9b042", - "txHash": "0x2f77810312700b228cf19587fe7081c447ce3e86640df5e84af29e464e2d8bc0", + "address": "0xa513E6E4b8f2a923D98304ec87F64353C4D5C853", + "txHash": "0x362e37fc25a891bea8ec6be478c0274411589986fa5032b27c5f095ce43fe47e", "kind": "transparent" }, { - "address": "0x4BEA9aAe24187d6128403DC556510A18d727871a", - "txHash": "0xbe4dd20817c400315d8a3fe60a0c148fc3b6f7ca89bb6156bf712299a67c23d2", + "address": "0xA51c1fc2f0D1a1b8494Ed1FE312d7C3a78Ed91C0", + "txHash": "0xd3916dc15abd61fa8445657420c6bc00b96652bc31a6a6bb2dc167d222cdda5c", "kind": "transparent" }, { - "address": "0x64386BC53c213F23C6960d3e080139A0f9Ef1733", - "txHash": "0x80ad44dc7957e9e2c6916a6f530de95d9148bd9400747a18c5059a697376a5ed", + "address": "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82", + "txHash": "0xff41c51821a448d0b0fc7f74302d567a4bdc9cf14798d804bf6093729ea12d97", "kind": "transparent" }, { - "address": "0x295129609d6876f5ECC62052Ba6bc082139A982c", - "txHash": "0x0fa37f342776f1f07e8aba35d5469d36de660c754044650fd124b676fef786ba", + "address": "0x3Aa5ebB10DC797CAC828524e59A333d0A371443c", + "txHash": "0xa2ce52961234efb53f0f9e87c0fe151682e6d3f48660660735bbee54eb88690a", "kind": "transparent" }, { - "address": "0x737b8F095E3c575a6Ae5FE1711AdB8F271E20269", - "txHash": "0x2435764c5ab4c316e60be1ac39887f57ee3554e1586db2572e0464040753d81f", + "address": "0xc6e7DF5E7b4f2A278906862b61205850344D4e7d", + "txHash": "0xa1cf1eead46119f56d8fe9d68772769f5dbfb78d3634e72e64f93cc3c9397c79", "kind": "transparent" }, { - "address": "0x0Ac85d55ebFc7f7b0cF4c13bb3BD6Eaf3909d62d", - "txHash": "0x359a5272e53fb90671ada54f9c99b7acaa94ce392ab8c75fba9bc291c90233ce", + "address": "0x4A679253410272dd5232B3Ff7cF5dbB88f295319", + "txHash": "0x2080073aa33ace0acb53131d009c0a267390a40a86bb78778e616bf878285103", "kind": "transparent" }, { - "address": "0x8C08821f5f94b519c853486eB131667AA528A460", - "txHash": "0xcd4c8f8be2ed5ae1c1f4c0c0c0d833241e57baf00fc7a2dca9790e82efe66928", + "address": "0x7a2088a1bFc9d81c55368AE168C2C02570cB814F", + "txHash": "0x25d83dcd89de18e9d04a469fe987a7994ff10708913ac5b51c78f5649469ebc8", "kind": "transparent" }, { - "address": "0xcf23CE2ffa1DDd9Cc2b445aE6778c4DBD605a1A0", - "txHash": "0xbb260c19ff1d825440d04e37af93b6de3525284e6cbfbefe95c92f91e744de0a", + "address": "0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690", + "txHash": "0xe0a43ff87b1943efe30581e001aa422fca3f34ba3562fa2788e3b8f15e37deff", "kind": "transparent" }, { - "address": "0x2963ff0196a901ec3F56d7531e7C4Ce8F226462B", - "txHash": "0x78f8228bc2842b6fd2e5c7f08ef5020a398b6f6af9d5af85d86486bd06a10159", + "address": "0x84eA74d481Ee0A5332c457a4d796187F6Ba67fEB", + "txHash": "0x786d75624c914e2bd4fa6476594bb9a8d4242a0a50cf0bd30cdcc096784ae94c", "kind": "transparent" }, { - "address": "0xA13d4a67745D4Ed129AF590c495897eE2C7F8Cfc", - "txHash": "0x46fee71ae0dcfbc7761a465ae53ef33bc05de56999bc267f24c7489ffb8ec918", + "address": "0xf5059a5D33d5853360D16C683c16e67980206f36", + "txHash": "0xd2efc98fb17eb8201df92136d0622f793804d763a8b931997f53cd77fa643da2", "kind": "transparent" }, { - "address": "0x23228469b3439d81DC64e3523068976201bA08C3", - "txHash": "0xd2ded286070daefaf34265219f2f04ffc0f5a03f2a8f98c0373c71476fa3efa4", + "address": "0x95401dc811bb5740090279Ba06cfA8fcF6113778", + "txHash": "0x54c0290e27f3ed4099f86a34c00c99291550a8e25cc991e05288fa39e751dfa3", "kind": "transparent" }, { - "address": "0x01D4648B896F53183d652C02619c226727477C82", - "txHash": "0x6ba81b50e1b69c22d6b9873e1e94a80d680ec324ec5bdbe47aa26755f475efa4", + "address": "0x0E801D84Fa97b50751Dbf25036d067dCf18858bF", + "txHash": "0x9209b8bfce59e71c46273c2a12ad1cb85689708d30710ef87520677f53470314", "kind": "transparent" }, { - "address": "0xf4fa0d1C10c47cDe9F65D56c3eC977CbEb13449A", - "txHash": "0xc1068751eed6b651c3a4901b9a78c51d0d125128a4e983131dc0373080548b22", + "address": "0x8f86403A4DE0BB5791fa46B8e795C547942fE4Cf", + "txHash": "0x6a0ed12fc930254da04ff3bca52be0ab4c0d877a2f5ae8ebfe0ba919014045e5", "kind": "transparent" }, { - "address": "0x88B9Ad010A699Cc0c8C5C5EA8bAF90A0C375df1a", - "txHash": "0x9098bd1c0412da5e80af77823dd41e42d40edb2a94d1c2041fc0ef0d6720a289", + "address": "0x4c5859f0F772848b2D91F1D83E2Fe57935348029", + "txHash": "0x646833670ffc4436024d9e81635afb275ede2b1db7df4fa3c3aac3f2470bd655", "kind": "transparent" }, { - "address": "0xAaC7D4A36DAb95955ef3c641c23F1fA46416CF71", - "txHash": "0x908413ce836f33c60462af42d47cc45f695a655e1ea04f6248771da5669205f1", + "address": "0x1291Be112d480055DaFd8a610b7d1e203891C274", + "txHash": "0x922d13462af2801b880ec1433394365795d8c0c53b534c4a68c3b96cb303213a", "kind": "transparent" }, { - "address": "0x594f79e85F6f041eb56cF6822FF4125ee316409E", - "txHash": "0x53d71a71480320331a5455aa9c96e64af1dad1e836fad17281985da7bae8eebf", + "address": "0x2bdCC0de6bE1f7D2ee689a0342D76F52E8EFABa3", + "txHash": "0x6e78504964e9595a72ef5e45d94467a812870ec72633644d67e5a514b3f445a5", "kind": "transparent" }, { - "address": "0x2fe19128A8257182fdD77f90eA96D27cA342897A", - "txHash": "0x6c46eac956f7743ee76c0faf244a0b22def34d4014567e8543f0cb419383e82c", + "address": "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0", + "txHash": "0x79498917eec9f2e01cf6892f2cff7190dee566a4d85eb11fa4e363b61f69c58c", "kind": "transparent" }, { - "address": "0xb9b0c96e4E7181926D2A7ed331C9C346dfa59b4D", - "txHash": "0x898024368e85909e5e61b5fe327fdd5b536e7ae784c69a7f557f708579eea48e", + "address": "0x1429859428C0aBc9C2C47C8Ee9FBaf82cFA0F20f", + "txHash": "0x0f1f16799829f1444c8fa8eb9d44c7627548b71c679f4c31aa4c27c4b2658a4e", "kind": "transparent" }, { - "address": "0xe3EF345391654121f385679613Cea79A692C2Dd8", - "txHash": "0x18ea4b71df31f6eaaa561685e568ca054475c37bb098166574ae7bb9a5543005", + "address": "0xB0D4afd8879eD9F52b28595d31B441D079B2Ca07", + "txHash": "0x08eea8b0d9672112b62eeadcdef55bb5428991d4f972c9a8986a209c7d44f7cb", "kind": "transparent" }, { - "address": "0x6D39d71fF4ab56a4873febd34e1a3BDefc01b41e", - "txHash": "0xc7b0fe6ab471c16c7770544583c12a6b87c80db50b395cae768775fad1703546", + "address": "0xdbC43Ba45381e02825b14322cDdd15eC4B3164E6", + "txHash": "0x869c9685251412cf2a94907927e28e7f335c71c3890810d5913e3c603fa01555", "kind": "transparent" }, { - "address": "0xeF66010868Ff77119171628B7eFa0F6179779375", - "txHash": "0x235ce5c90453e10ed2457eddbdbd91fab3ccc302af81633256eef9988b807bd9", + "address": "0x04C89607413713Ec9775E14b954286519d836FEf", + "txHash": "0x09ec33b783e2f41c1f12bc1a7bd4c9bfde51e98fb090a7d137164120ee0ee531", "kind": "transparent" }, { - "address": "0x103416cfCD0D0a32b904Ab4fb69dF6E5B5aaDf2b", - "txHash": "0x7fc754bc79957d0d299ca0082867850868126189a583d4732d2114d263d393e9", + "address": "0xDC11f7E700A4c898AE5CAddB1082cFfa76512aDD", + "txHash": "0xfbc8bd875a8a8cd8f564b68bdebe6d9c1854e63c41217c0763d612023c24f3cb", "kind": "transparent" }, { - "address": "0xACB5b53F9F193b99bcd8EF8544ddF4c398DE24a3", - "txHash": "0xb54eec53a2129d2b3850f4714757e0302bafd1177799c40f19893269b95792c1", + "address": "0x51A1ceB83B83F1985a81C295d1fF28Afef186E02", + "txHash": "0xf3d90af478c01e0dd7837cc1c803bcc9a3537279495ece64d47293539882cf6d", "kind": "transparent" }, { - "address": "0x6C3F7ed79b9D75486D0250946f7a20BDA74844Ba", - "txHash": "0x909be7e134f9ea23cbc29a136745c01eb8347a9942fdf8f4e0920807b0e7dcf8", + "address": "0xfbC22278A96299D91d41C453234d97b4F5Eb9B2d", + "txHash": "0x82dd34891964349eb5a3a2f4d60de3d73ab8c24e133c89bc9e783ac61b486d1b", "kind": "transparent" }, { - "address": "0x43c5DF0c482c88Cef8005389F64c362eE720A5bC", - "txHash": "0xd2693bd5a0c259e1ec4814227b52040e00e5247b22ba509e6ce4216c4ddecaf0", + "address": "0x46b142DD1E924FAb83eCc3c08e4D46E82f005e0E", + "txHash": "0xbbaef08a9e4e6eb54e33c516335a05a8d65eba6561012b6a92bf1bbfe246c7f6", "kind": "transparent" }, { - "address": "0xF01f4567586c3A707EBEC87651320b2dd9F4A287", - "txHash": "0x4424569baadb3a3417af1525f70feed18f96f802c9a6548e355991a7a322cbb1", + "address": "0x7A9Ec1d04904907De0ED7b6839CcdD59c3716AC9", + "txHash": "0xa44221030a6ddacb6322adf3563ab2340e8342cfa2ed206f890e6f024956946c", "kind": "transparent" }, { - "address": "0xCaC60200c1Cb424f2C1e438c7Ee1B98d487f0254", - "txHash": "0x4ef8f40f4ffb1b17ba189cb49b7fa1199991280309ef7b88d1aaeb4ee445dff6", + "address": "0x49fd2BE640DB2910c2fAb69bB8531Ab6E76127ff", + "txHash": "0xf4372e7967f2de46a4f1b99152e749a9e45ba244ea7572208f7145fb98a2bf7c", "kind": "transparent" }, { - "address": "0xFf8FA9381caf61cB3368a6ec0b3F5C788028D0Cd", - "txHash": "0x0ddde961746e0980703c1c15b1fd911b46f770ecd376fb54727fbb7efb5e05a4", + "address": "0x4b6aB5F819A515382B0dEB6935D793817bB4af28", + "txHash": "0x6be1a2def46d03c18a6620cd31613b4a14b5d8779cf165f436b3fcd2f008674c", "kind": "transparent" }, { - "address": "0x69eB226983E10D7318816134cd44BE3023dC74cd", - "txHash": "0x14a53f3e966dc1d12c898803c1525c5feb0e589af30d3f2d6786707faf9bd76a", + "address": "0xCace1b78160AE76398F486c8a18044da0d66d86D", + "txHash": "0x59d07830296af664a104c3be448fe953811cedaccb09153f221ed83482fe547a", "kind": "transparent" }, { - "address": "0xD8fE7c45330c8b12cA0D4728D75557b9e7BeB24F", - "txHash": "0xe251d8618c06cc376953a5a09435acd776dca105910fcd654079b8b48b310716", + "address": "0x276C216D241856199A83bf27b2286659e5b877D3", + "txHash": "0xa684885ec198ae04985f9b271f21eda0668e3063eb34b0f9a948a64e7e22f897", "kind": "transparent" }, { - "address": "0x3Aa338c8d5E6cefE95831cD0322b558677abA0f1", - "txHash": "0xfd183e40482bbc74e17650c22609f079af001225e76e82e8b74063f1e52885da", + "address": "0x3347B4d90ebe72BeFb30444C9966B2B990aE9FcB", + "txHash": "0xfffa8ad1ecdd3252e0329a0f749797401f5dd07e84195b01cb663e3605d83bae", "kind": "transparent" }, { - "address": "0x267fB71b280FB34B278CedE84180a9A9037C941b", - "txHash": "0x501ae8bf30ea1dbd2551f986ba1737efdf0f9d6ea5d63e996d0307284edc6ed7", + "address": "0x5fc748f1FEb28d7b76fa1c6B07D8ba2d5535177c", + "txHash": "0x12943c2bfb680868a63cce39ae895ff91cde04c856f55c52a792ff9475998329", "kind": "transparent" }, { - "address": "0x9015957A2210BB8B10e27d8BBEEF8d9498f123eF", - "txHash": "0xf4a10b2329504d575d1e1548a5681ee17f8c37b30ffdf5eb1a6475d14ee4c2a1", + "address": "0xB82008565FdC7e44609fA118A4a681E92581e680", + "txHash": "0xa47686b1f474ae2ec468eb702e1cbee2f4141101734b1e7a9a5b8167a7d0e74e", "kind": "transparent" }, { - "address": "0x9C6c49E1a5108eC5A2111c0b9B62624100d11e3a", - "txHash": "0xb118fa3de76c12a964e17c5e38dc0fcfc1942cc78e0ed7aa627f484c993d89b3", + "address": "0x5FeaeBfB4439F3516c74939A9D04e95AFE82C4ae", + "txHash": "0x13961c446a2b82e6678fec6c600b33c4e9459a64b222e6431e610c960924c916", "kind": "transparent" }, { - "address": "0x95D7fF1684a8F2e202097F28Dc2e56F773A55D02", - "txHash": "0x87ccb08dd43f3def1c9f385f7b64a36ca83bcb4969c201c9550a44b6cbeceb8d", + "address": "0x976fcd02f7C4773dd89C309fBF55D5923B4c98a1", + "txHash": "0x706a9714453b986e428be4af3c66867ba05429d80552a7a039ed504dbc140bf8", "kind": "transparent" }, { - "address": "0x633a7eB9b8912b22f3616013F3153de687F96074", - "txHash": "0xbb92e43912bd42b9616925357dd46e32cc0715d92aeb41ef9dbd5c4b0d4404e0", + "address": "0x70bDA08DBe07363968e9EE53d899dFE48560605B", + "txHash": "0xd67bbc025439d2a53f72a582b370249308756fb98f21d561bbff9e522dddcd12", "kind": "transparent" }, { - "address": "0x1E53bea57Dd5dDa7bFf1a1180a2f64a5c9e222f5", - "txHash": "0x0bf88e78fa04862975f297c2edd065678b54ae776b83057577ea16f7feb11fd7", + "address": "0x26B862f640357268Bd2d9E95bc81553a2Aa81D7E", + "txHash": "0x2f1558d3e8407915c820cb4eeef905eeb14d454aa886a906b6a7080c001c6962", "kind": "transparent" }, { - "address": "0x17f4B55A352Be71CC03856765Ad04147119Aa09B", - "txHash": "0x91635e68bc304d8dfb994d4511f202b4fd9399d9a58e789baf1a8ca0be8dc2c1", + "address": "0xd9140951d8aE6E5F625a02F5908535e16e3af964", + "txHash": "0x5f8c05d7d9c3b585b47e9f026a9a6519a2a34f9141de77b73c39821e8d87eb78", "kind": "transparent" }, { - "address": "0x08677Af0A7F54fE2a190bb1F75DE682fe596317e", - "txHash": "0xcc540ff89746020600d32eff1da6a61f63fc0fc64967820a2c3a2ad1b9a2d573", + "address": "0x56D13Eb21a625EdA8438F55DF2C31dC3632034f5", + "txHash": "0x423941cc1b87926138b8275d7c89a64fbafda5e59f059951a089e5d21e676081", "kind": "transparent" }, { - "address": "0x87a2688d6E41b23d802F74c6B1F06a8e8d118929", - "txHash": "0xde6e7a071b053e31c6a1e3c778cd23113aee167280edee97bc65f51ffb5b9765", + "address": "0x8B190573374637f144AC8D37375d97fd84cBD3a0", + "txHash": "0x689201b4ba60668036a424b7f571aff66c166cdf58c08dd04bbdc2bdbae68f59", "kind": "transparent" }, { - "address": "0x8797847c9d63D8Ed9C30B058F408d4257A33B76C", - "txHash": "0xaad0a04762380782e7d2435cb6465d12e915e61ccb92715934e9035848a6944e", + "address": "0x9385556B571ab92bf6dC9a0DbD75429Dd4d56F91", + "txHash": "0x07090c916e76bcf7b4d764fac8735f54e00383dbefc1954edad72c1a6a6ee517", "kind": "transparent" }, { - "address": "0xF816b7FfDa4a8aB6B68540D1993fCa98E462b3bc", - "txHash": "0xa501fe5542d39dfd5f590f042b914a014988158ea391b66aa2068ef27ff32f19", + "address": "0x01E21d7B8c39dc4C764c19b308Bd8b14B1ba139E", + "txHash": "0xdde786a98aee7fbfad14feee9b2e752bb68ac964f397027d941006958c4569e3", "kind": "transparent" }, { - "address": "0xDB259fa7d7f9F68aE3ffC3c748516ba9567a7576", - "txHash": "0xc05d786a57888039ce4a8b6ae7dd2c11cc7bcbc37fab2348ab592ccfdced35a9", + "address": "0x3C1Cb427D20F15563aDa8C249E71db76d7183B6c", + "txHash": "0xdaa1e08b0d7bdeb9e1cb180ff4dab45ae99d000d8d9ca9046c3b457e9210eb14", "kind": "transparent" }, { - "address": "0x71d75C9A9e1a4fFa5a16556b51D6e630A4FA902A", - "txHash": "0xb1a4553030465f11524886ab3d87d64c444ad569d61cf5ad6bdb54bfdc5d3207", + "address": "0x8ac87219a0F5639BC01b470F87BA2b26356CB2B9", + "txHash": "0x23902369dae651ad305096afc784ac18b2ce11fd2081d79b565f5b9c3db88e92", "kind": "transparent" }, { - "address": "0x701dC26AcaD119E892695bb6A06956e2165C2052", - "txHash": "0x5bc2dd3d1f7e85e268aa5b979b30cb4a31252bb085eed282b04ab28f01d29f9a", + "address": "0x94fFA1C7330845646CE9128450F8e6c3B5e44F86", + "txHash": "0xe0a1c37bdec1121186af1f1acda016ae7b8a6edef744c92b239b4885d8c052fe", "kind": "transparent" }, { - "address": "0xbaee9B65349929Bd78f9878555bF78027Df7f101", - "txHash": "0x7f5f41aef1f79aecfb8a1bf9dbbb898398610154745a15f93ba6b5bff2168e39", + "address": "0xa4E00CB342B36eC9fDc4B50b3d527c3643D4C49e", + "txHash": "0x94e6ffa10036b636d7aedd48d8a180aba3b5bea6fe8dc81150b1aba955217b02", "kind": "transparent" }, { - "address": "0x886a2A3ABF5B79AA5dFF1C73016BD07CFc817e04", - "txHash": "0xe10b4371962b280d9d8ae1ad9b1c460ace1305967b4d0eaf8b7003016e8bb9db", + "address": "0x8ac5eE52F70AE01dB914bE459D8B3d50126fd6aE", + "txHash": "0xb9f8449d88fc777438feaadfe5b2c2315170d0777b43ccd7703b0f555361f343", "kind": "transparent" }, { - "address": "0x449C286Ab90639fd9F6604F4f15Ec86bce2b8A61", - "txHash": "0xc359e21505ceeef6d8d34524fbc441b76753f555ad688b94a89aa299db0a602e", + "address": "0x24d41dbc3d60d0784f8a937c59FBDe51440D5140", + "txHash": "0x598c837fc270e9d07fd948235a72a73cd016a3d1feca3406b4beb3035120976b", "kind": "transparent" }, { - "address": "0x5aA185fbEFc205072FaecC6B9D564383e761f8C2", - "txHash": "0xdfdf10a3a3e25f1edbc76017fe814c59243e0a725aad5d213c7c1a729faf5c27", + "address": "0xC976c932092ECcD8f328FfD85066C0c05ED54044", + "txHash": "0x3aba7253b48f035302ee6d53e57b0c658e7677cc62a43c8930c4a75db0379986", "kind": "transparent" }, { - "address": "0x63275D081C4A77AE69f76c4952F9747a5559a519", - "txHash": "0x90b6cdd247a950e8b9b55d667854240a2be53974054a906355991cbdb184ccc3", + "address": "0x3a622DB2db50f463dF562Dc5F341545A64C580fc", + "txHash": "0xa7c7e1f11b18d65aae6dc90831759ba07bf522d7c900346ccd917e1dbd5f53f8", "kind": "transparent" }, { - "address": "0x67832b9Fc47eb3CdBF7275b95a29740EC58193D2", - "txHash": "0x760c7911c1e2371d5e508867013a677e7dc87af56094f73697fe4441e52afa31", + "address": "0x6A47346e722937B60Df7a1149168c0E76DD6520f", + "txHash": "0x49f9109030545eb90ec46bce08e6b11a3dbce580b636d5f1fa8e41affae2ff76", "kind": "transparent" }, { - "address": "0x832092FDF1D32A3A1b196270590fB0E25DF129FF", - "txHash": "0x9c06703c107505a17cc4dab86db19d8ad1409224fc7a77e1ea63be946c48e66a", + "address": "0x15Ff10fCc8A1a50bFbE07847A22664801eA79E0f", + "txHash": "0x29943c6bd0dbaa02132245beb8bb0b9c5deee553aa53623c71ac65707473084c", "kind": "transparent" }, { - "address": "0x8729c0238b265BaCF6fE397E8309897BB5c40473", - "txHash": "0xca18daf3344bd254c03018c4c88c68510d4df626bc767ab766105ec90adf1fdf", + "address": "0xAe9Ed85dE2670e3112590a2BB17b7283ddF44d9c", + "txHash": "0x3a682ec1e171d428ecb8272b08194892aaf0b9e958b457b11714164fcf7c2598", "kind": "transparent" }, { - "address": "0xDf795df2e0ad240a82d773DA01a812B96345F9C5", - "txHash": "0x43aca645e2389aeca7291fdcf1e920d6ce7023a0634a39cadf1c8879f93e7959", + "address": "0xd977422c9eE9B646f64A4C4389a6C98ad356d8C4", + "txHash": "0x086d1c32b98f3fd83a08dd24037275dbd37bd0afd347dcdb382897059477040e", "kind": "transparent" }, { - "address": "0xDb731EaaFA0FFA7854A24C2379585a85D768Ed5C", - "txHash": "0xbf8f6e87264d16af441499df65dd3ac6626f3b33c71f5efe3854475232dfdd1f", + "address": "0x1eB5C49630E08e95Ba7f139BcF4B9BA171C9a8C7", + "txHash": "0x3445c4b902bf599f0568066d7951d06b42bb03f021f5d17f1261ab1f752dd40e", "kind": "transparent" }, { - "address": "0x335796f7A0F72368D1588839e38f163d90C92C80", - "txHash": "0x695de7eca08cd0ec9367f0d228296e7d14bb9fafd2b1e95c9165dc079e7feb76", + "address": "0xB1c05b498Cb58568B2470369FEB98B00702063dA", + "txHash": "0x4b7097468f2a9a35b7ada76b49b606b5feb40909e9daa065c0528f803bbe7ff5", "kind": "transparent" }, { - "address": "0xC63db9682Ff11707CADbD72bf1A0354a7feF143B", - "txHash": "0x88eedea406ef4a987ce3a0230633620c7b9e4cb35807369dfe07acb8bc9202f6", + "address": "0x92A00fc48Ad3dD4A8b5266a8F467a52Ac784fC83", + "txHash": "0xac36b4d1390fee33e88f0fc6a4dfa402fae500a64c2429c01bd0df32624e711a", "kind": "transparent" }, { - "address": "0xF8b1d4d0A2Dd9Dd53200A4C6783a69c15E3a25F4", - "txHash": "0xcb16d63658b653c346934a4583ef6ef09a013683e77f958edefb25a3ac92be99", + "address": "0x021DBfF4A864Aa25c51F0ad2Cd73266Fde66199d", + "txHash": "0x610686d85b1b1ad15de8e8f9c1809cbed7a98724b647bad90ae3bceb6969530f", "kind": "transparent" }, { - "address": "0x9A676e781A523b5d0C0e43731313A708CB607508", - "txHash": "0x041fc2306775cd59d703efd206650152ddbb7097bc501e78cce272a13fb14ff9", + "address": "0x4CF4dd3f71B67a7622ac250f8b10d266Dc5aEbcE", + "txHash": "0xefd534e821a6ebc1908018cf5eaa2f1d346325106439b7fa4605555949b084eb", "kind": "transparent" }, { - "address": "0x59b670e9fA9D0A427751Af201D676719a970857b", - "txHash": "0x4f719966e63c7e533014686beeb8888b7f3cc057ac7c84536b5332b620c2ea9f", + "address": "0x26291175Fa0Ea3C8583fEdEB56805eA68289b105", + "txHash": "0xb6a2f7f5e52810184b12b65d131e06843cadfd96897566a57cafbcf81c531e5a", "kind": "transparent" }, { - "address": "0x5067457698Fd6Fa1C6964e416b3f42713513B3dD", - "txHash": "0x8734c4365f365f3607fd735f34cb0afe5f93e62f5765678422eaae0484b98c5a", + "address": "0x840748F7Fd3EA956E5f4c88001da5CC1ABCBc038", + "txHash": "0x9caaae2c9ddd30e9c1937947196592dd8b4b6659c16aa4b4efba4324905aae21", "kind": "transparent" }, { - "address": "0x22753E4264FDDc6181dc7cce468904A80a363E44", - "txHash": "0x5d5834c04cba1536624241c819ae411e5ded61025170e1033e45f77befbbf8fb", + "address": "0xa8d297D643a11cE83b432e87eEBce6bee0fd2bAb", + "txHash": "0x8e711d450c36c3ab11f9916cf2234ced3d91ef23d9ab3a8927f18ccc23449408", "kind": "transparent" }, { - "address": "0xA7c59f010700930003b33aB25a7a0679C860f29c", - "txHash": "0x1b07053803e9c29a71a2f8c0b50bf20cf4b9680692b02620040dd16f2d64ec46", + "address": "0x6Da3D07a6BF01F02fB41c02984a49B5d9Aa6ea92", + "txHash": "0xa4b3cdb40330944c4a13251227b73fac4e225e12ea6c0ce4967a501b4a4e505d", "kind": "transparent" }, { - "address": "0x457cCf29090fe5A24c19c1bc95F492168C0EaFdb", - "txHash": "0xd9b5da730acd059ea149aaea981eb7ae20be61cb63bc4a5257c10c6b9af2cc8d", + "address": "0x3AeEBbEe7CE00B11cB202d6D0F38D696A3f4Ff8e", + "txHash": "0xea0f80acac00fcc17d12bf43effeae740f63e13f8cceb599efcb6083e8bfc7d4", "kind": "transparent" }, { - "address": "0x6F6f570F45833E249e27022648a26F4076F48f78", - "txHash": "0x4eecdee8fc3482764284d8c704a05cc4f75d0082eff8f3a16446d193f950626a", + "address": "0xB2ff9d5e60d68A52cea3cd041b32f1390A880365", + "txHash": "0x8a4c0fe07fd764a3d14be2be3862d46ce7cc146a3231c766a1433da9ccad8c1c", "kind": "transparent" }, { - "address": "0x6C2d83262fF84cBaDb3e416D527403135D757892", - "txHash": "0xb1444a3ff98f2379ab7935f63a3e0fd36bcbcec5cbf070d47ec9890d0ec5e5c0", + "address": "0x889D9A5AF83525a2275e41464FAECcCb3337fF60", + "txHash": "0x5833ce18b2c83e750fc8a1d5f0c1e4efdda10c6ad43b24276845514368a6c4ff", "kind": "transparent" }, { - "address": "0x413b1AfCa96a3df5A686d8BFBF93d30688a7f7D9", - "txHash": "0x5c4f1dacd5add371d2c0a40b2c31a1d8aef85a822d2be9555da7548c4d23d75f", + "address": "0xf274De14171Ab928A5Ec19928cE35FaD91a42B64", + "txHash": "0xa134758e3746def8ae94cad0db95774d92232c9dbf4c13fa72f3ded0d23601e3", "kind": "transparent" }, { - "address": "0x56fC17a65ccFEC6B7ad0aDe9BD9416CB365B9BE8", - "txHash": "0x5a8335d102824dd9007ee7db80d7cdac075fb7de91afe9621b2a927ff1a32257", + "address": "0x519b05b3655F4b89731B677d64CEcf761f4076f6", + "txHash": "0xeacf574610b07d6bca2ae2af7aa412ce6dd4c2ad3ddedfd2d8e60fe717a9f84f", "kind": "transparent" }, { - "address": "0xcC4c41415fc68B2fBf70102742A83cDe435e0Ca7", - "txHash": "0x5282c57db885d116d18cb3bf6cc7e59223e3ef03d77c6f37fe3a07cb3a933dd4", + "address": "0x057cD3082EfED32d5C907801BF3628B27D88fD80", + "txHash": "0x5fce92538b763f713c2436b720f80ba2384e0e26f60db4f68e6382e7e0e5bdad", "kind": "transparent" }, { - "address": "0xeAd789bd8Ce8b9E94F5D0FCa99F8787c7e758817", - "txHash": "0x63bb666e4e5a9770382f7ff4121bbb5ef65893a322208a63095ab41dea27c4ef", + "address": "0xCA87833e830652C2ab07E1e03eBa4F2c246D3b58", + "txHash": "0xea282d0df28916b15589687ca56c1ed0aa18f888b85fdf115247ab58820b4ad9", "kind": "transparent" }, { - "address": "0xA9e6Bfa2BF53dE88FEb19761D9b2eE2e821bF1Bf", - "txHash": "0x48731f5d878fca847be622c5ac23975d444c5a56f53b5591f9f8c970209fa8a0", + "address": "0x9Bb65b12162a51413272d10399282E730822Df44", + "txHash": "0x1e36a60e959745079294d75e4f8e7cbf3702b891160f900ca780016eeb3b77f7", "kind": "transparent" }, { - "address": "0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6", - "txHash": "0x0bc29a63d25dab38349b636173d70352f9d9a7afb42b52ac918c5474b6820353", + "address": "0xeA8AE08513f8230cAA8d031D28cB4Ac8CE720c68", + "txHash": "0x895196478e2a23cf9b9da10b3261e7d3695cec700eb31b421fe97b8722b38bd7", "kind": "transparent" }, { - "address": "0x610178dA211FEF7D417bC0e6FeD39F05609AD788", - "txHash": "0xbf167b7e157780093c38ebad9e6255428c6a823061d6f32e101f69d8b3ec0b5b", + "address": "0x6431AF84d34F0522cAA58b221d94A150B5AdAC69", + "txHash": "0x941e7ec40c8e79640cbc951d860906ea1e23848b51c63aee30fc90d6cfd3c67f", "kind": "transparent" }, { - "address": "0x0B306BF915C4d645ff596e518fAf3F9669b97016", - "txHash": "0xcad1cef10d1df8be3010d3a5dfd9db6b8f24347c1b6267817c3a53235353d5ff", + "address": "0x9A676e781A523b5d0C0e43731313A708CB607508", + "txHash": "0x041fc2306775cd59d703efd206650152ddbb7097bc501e78cce272a13fb14ff9", "kind": "transparent" }, { "address": "0x959922bE3CAee4b8Cd9a407cc3ac1C251C2007B1", - "txHash": "0xd17c8c3b31cacdec397bbd2710f4b09776ed2a9a4a95eb5f4e7fe037fd1be91c", + "txHash": "0x31e6561062835dc91ce53c6d5c946c03f4d197e6c58cac58f5ba0c8c5ee7f1d2", "kind": "transparent" }, { - "address": "0x4ed7c70F96B99c776995fB64377f0d4aB3B0e1C1", - "txHash": "0x4f83893595a0a2e8c8ac40e9a893268ea8ebb4767c1a8ad0c7724474744b53c1", + "address": "0x59b670e9fA9D0A427751Af201D676719a970857b", + "txHash": "0x8b7b076c5ea2c51b8d2e66366338fc38d60c530a20bf6f78dbbf822501706404", "kind": "transparent" }, { - "address": "0x322813Fd9A801c5507c9de605d63CEA4f2CE6c44", - "txHash": "0xc299c166c1fcb70a438e1fbbe1dfeb48415cb1ee3b29f80e293cd25f08c1f065", + "address": "0x4ed7c70F96B99c776995fB64377f0d4aB3B0e1C1", + "txHash": "0xfda0a3992b0074b92c31fae8714b7bf33d116e83a06c6e0b68e7a986b8ed97a8", "kind": "transparent" }, { "address": "0xc5a5C42992dECbae36851359345FE25997F5C42d", - "txHash": "0x45ced6b3ea87b4084a51f70f388f4e6d4723c8b4edaeee49d1f61f11872ff4af", + "txHash": "0x648651005b963504b3b4480be61d535b50440ac85f0d5ab1656d3863ed12e6f0", "kind": "transparent" }, { "address": "0x67d269191c92Caf3cD7723F116c85e6E9bf55933", - "txHash": "0xf6b46dac9347e5c06a3fcb4466a780f5e26905e45a17f845d630f7768f135020", + "txHash": "0xcc5ac8bc4bb1ce7fd62d9c0f3e8562dc59390b24555463632cdbef48cff27f39", "kind": "transparent" }, { "address": "0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9", - "txHash": "0x4823bebf05c5affcd0e943c514cf5636a949dead099343bfe7a92d8dfce57695", + "txHash": "0xe1ac0ad26e8bbcdff773048ccb6c78771db527a1abd25d2a8aa6e329f0d7ed0f", "kind": "transparent" }, { "address": "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8", - "txHash": "0x7b305d3bf9596690a73c84f3859fdc7ada26011c3a44a07b0fe45c01ada0bdba", + "txHash": "0xc639920329a891659c698d23d6fc1a322936a805d6e1f11d83cc3e79ef1b7cdf", "kind": "transparent" }, { "address": "0x70e0bA845a1A0F2DA3359C97E0285013525FFC49", - "txHash": "0x6d0be47781d9a2c6eff14924dcc304513072d7d60fdd4383afad4337188812db", + "txHash": "0x79a5dd0db9d3fa411aa6479b63ae884769141bc843f54f6d0ac02446ff9fff1a", "kind": "transparent" }, { "address": "0x4826533B4897376654Bb4d4AD88B7faFD0C98528", - "txHash": "0x76b7a24359113d69564afebb2752f1974f37aa12b7443593d4f27260d14989e6", + "txHash": "0x30803d11601d00e7e8a618f281acbe96a6dff958b7444d67201bae2f1bd44fba", "kind": "transparent" }, { "address": "0x5eb3Bc0a489C5A8288765d2336659EbCA68FCd00", - "txHash": "0x6be270f128fd0ddb57adbecb34f4a62661bde01dc296d6c539eb62c9e09a1105", + "txHash": "0x28ff6824b5c226cd2868c00b63141cedab16aea4aa0fb45b1a641183caf1c4ff", "kind": "transparent" }, { "address": "0x36C02dA8a0983159322a80FFE9F24b1acfF8B570", - "txHash": "0x1ace4eb7326253ab67780a5595aaa08ad479ec45397a57e4bef2e49de8c6336e", + "txHash": "0x97d654a859f1c27e9505a4b0d712d09d911b1085d3ccc0478cf114ea10cf9efe", "kind": "transparent" }, { "address": "0xb7278A61aa25c888815aFC32Ad3cC52fF24fE575", - "txHash": "0xdd62ab6673f06011debf6c08243bed4cbdac3470aa33de5c6883379029036980", + "txHash": "0xa848fd48e204fc2fcda809ba302752761406f37e5c70c6ebc6e2d5aa3f805d9a", "kind": "transparent" }, { "address": "0xCD8a1C3ba11CF5ECfa6267617243239504a98d90", - "txHash": "0xba14d3f4d3c104c850c9335ddcd425d56112a31f2fe0c8605135edf7f921278f", + "txHash": "0x16b83fb5a9e7d98d347243e4ec7352c90c6ff53b60efbe00778e9a104d555490", "kind": "transparent" }, { "address": "0xc351628EB244ec633d5f21fBD6621e1a683B1181", - "txHash": "0x06cb84786c31bf76b378fd2cfef120b3d4bec565af55753ba7da6c39d3c272af", + "txHash": "0xd09ec7246956ed93014554e1e4efabc0f77ddb26041d32d6d1dc709c0a5cdc2a", "kind": "transparent" }, { "address": "0xFD471836031dc5108809D173A067e8486B9047A3", - "txHash": "0x43980efd04133c285f8f174caabf253a88e5f1576f4c72c482bdd1babb5baf14", + "txHash": "0x007aee7bb25ae9715a586b491d7b065d03d80408fb4f52acf87a26ef3e779ff8", "kind": "transparent" }, { "address": "0x922D6956C99E12DFeB3224DEA977D0939758A1Fe", - "txHash": "0xd855a614c15dfd3eb136e5d4b74b4fc1b6ba25347386be530c8ab5880add1fc5", + "txHash": "0x570a7da33801d3784aab2a40f369e6b08ad1f0944ca367f710dcdc9ebf946db5", "kind": "transparent" }, { "address": "0x5081a39b8A5f0E35a8D959395a630b68B74Dd30f", - "txHash": "0x32516f05ce1b395c4edf98494409b45170f33caa36bdf4372774d02e58bb7bc6", + "txHash": "0xd3ad1cfcec64d8d205def6a535a7362c613d9ab2285e4a79729f80139f960dfb", "kind": "transparent" }, { "address": "0x21dF544947ba3E8b3c32561399E88B52Dc8b2823", - "txHash": "0xb186688330b3d7f072660432aed2e5f88a272b248ab58461eb388cdd8cef5934", + "txHash": "0xc7dd192761c09621707602f4b176160bac080ac2196e483d7a9fcb1671fa8264", "kind": "transparent" }, { "address": "0x2E2Ed0Cfd3AD2f1d34481277b3204d807Ca2F8c2", - "txHash": "0xa56657377b16e6b8a1c0553f431e6c5e6b67377f131bf39a2f6a2f10b33d8137", + "txHash": "0xeaeaa4b0d81014da03b78241cbf68827dac934677205519ea257d696b2fe7f52", "kind": "transparent" }, { "address": "0x8198f5d8F8CfFE8f9C413d98a0A55aEB8ab9FbB7", - "txHash": "0x220310e9bb34b9b61a151ab10a24f175281c2efbbeacf8f465cd45b26e389909", + "txHash": "0x488986656104303763d6c5ffb12ec833ca5cbf62c846e17cf24549b74b50c531", "kind": "transparent" }, { "address": "0x0355B7B8cb128fA5692729Ab3AAa199C1753f726", - "txHash": "0x4768a1161cecdbebffb05acfa458fd375995187178ccb94b9b4e66d1e3d98d19", + "txHash": "0x8eb47a0687508d5368691d7f7a7b45f3f9c5e47a2e41ba03f668b688cad8d0fb", "kind": "transparent" }, { "address": "0xBEc49fA140aCaA83533fB00A2BB19bDdd0290f25", - "txHash": "0x4348cbac6369965236dd068ad567b3830beef7167a0a8f3731b095e59c461ba9", + "txHash": "0x655d60ce80ae832ef0a9c9b419cc936215b904070e2044b6160d968f2bd41653", "kind": "transparent" }, { "address": "0xD84379CEae14AA33C123Af12424A37803F885889", - "txHash": "0x55efee3d90fc5da3c09b3e16faf3d6bcb4adfc469e949e8e9d496d1acef7a1ed", - "kind": "transparent" - }, - { - "address": "0x1c85638e118b37167e9298c2268758e058DdfDA0", - "txHash": "0x9bf930e349077e3ff7eeffbfbba2363d61052d1bcdb8f9208efeec2ab23a060f", - "kind": "transparent" - }, - { - "address": "0x367761085BF3C12e5DA2Df99AC6E1a824612b8fb", - "txHash": "0xa2aca7760d8007a373403092f7f0dc0d00b268e09d55627191d04d3e89fd2829", + "txHash": "0x2e52cd308f0e93ea4f63fa9b7f95219db6bdd8388adb541572393be24c0b78ad", "kind": "transparent" }, { "address": "0x86A2EE8FAf9A840F7a2c64CA3d51209F9A02081D", - "txHash": "0x4d2d0ef3ccc55897b912aa9196e924b2272abdc9e71cc1951c4b148bdc26f79c", + "txHash": "0x9a4efcace6f933d1ece1a5bedf864140fb612594ddeb1fed4811fe4b2853a56d", "kind": "transparent" }, { "address": "0xA4899D35897033b927acFCf422bc745916139776", - "txHash": "0xfc7daf35feaf6ea4482f4c97feaf2091be02b5acdff46a464ad0bab6710988f5", + "txHash": "0x08e38bdbd08319898a90a0b329eb44e473a1a3b9640aa6d2221691bf3dd76c5d", "kind": "transparent" }, { - "address": "0x18E317A7D70d8fBf8e6E893616b52390EbBdb629", - "txHash": "0x3f4f3399afa90c54c53fb08a722eb3fd61b89bc091f840541505c5fd6e047a30", + "address": "0xe8D2A1E88c91DCd5433208d4152Cc4F399a7e91d", + "txHash": "0xc6fb2aee53aa62000802524e113a4e1995c27bdadeb3ec3d10a3d2a21101d44b", "kind": "transparent" }, { - "address": "0xD0141E899a65C95a556fE2B27e5982A6DE7fDD7A", - "txHash": "0x6060bf413116da11e06e3616f05c3a87f98722a46d961ff11319333338027d31", + "address": "0x5067457698Fd6Fa1C6964e416b3f42713513B3dD", + "txHash": "0x8734c4365f365f3607fd735f34cb0afe5f93e62f5765678422eaae0484b98c5a", "kind": "transparent" }, { - "address": "0x07882Ae1ecB7429a84f1D53048d35c4bB2056877", - "txHash": "0x6ea7dde8b404ad0c25a45926ffae88d6de706d4e884bc8fa01cae3b3090b9106", + "address": "0x22753E4264FDDc6181dc7cce468904A80a363E44", + "txHash": "0x5d5834c04cba1536624241c819ae411e5ded61025170e1033e45f77befbbf8fb", "kind": "transparent" }, { - "address": "0x5bf5b11053e734690269C6B9D438F8C9d48F528A", - "txHash": "0xa5a467edb2b8e6fc36ccc0a7df5053df14dae295182b9eac2118f7eb20ea0f38", + "address": "0xA7c59f010700930003b33aB25a7a0679C860f29c", + "txHash": "0x1b07053803e9c29a71a2f8c0b50bf20cf4b9680692b02620040dd16f2d64ec46", "kind": "transparent" }, { - "address": "0xffa7CA1AEEEbBc30C874d32C7e22F052BbEa0429", - "txHash": "0xcabe4220619db70f1b47bc1e91b41dfdb890b2d5d2ab6f12273979c8e3d2d580", + "address": "0x457cCf29090fe5A24c19c1bc95F492168C0EaFdb", + "txHash": "0xd9b5da730acd059ea149aaea981eb7ae20be61cb63bc4a5257c10c6b9af2cc8d", "kind": "transparent" }, { - "address": "0x1f10F3Ba7ACB61b2F50B9d6DdCf91a6f787C0E82", - "txHash": "0x7c85887c44345b20861098420f24abe9f80d7d44d4c4f0e43f5ae8a6b8d3889d", + "address": "0x525C7063E7C20997BaaE9bDa922159152D0e8417", + "txHash": "0xbd7a7948b34144b3856bbbc4e28f705f55ba8728fd4a526b7064dac2325e161e", "kind": "transparent" }, { - "address": "0x525C7063E7C20997BaaE9bDa922159152D0e8417", - "txHash": "0x256cdfcae25e2a9c892089ce9bc798c5533164dccf7e97236340bba606ff5039", + "address": "0x6F6f570F45833E249e27022648a26F4076F48f78", + "txHash": "0x4eecdee8fc3482764284d8c704a05cc4f75d0082eff8f3a16446d193f950626a", "kind": "transparent" }, { - "address": "0x38a024C0b412B9d1db8BC398140D00F5Af3093D4", - "txHash": "0xdffaf18c1a2fcbf735d6a24c2a5135dc8d3165db5e2b2bba7c65bb64a408037a", + "address": "0xCA8c8688914e0F7096c920146cd0Ad85cD7Ae8b9", + "txHash": "0xb54910ccfa91554d2c373ee6f32b4840824e21211d24b16d7e85242e0b28a053", "kind": "transparent" }, { - "address": "0x40918Ba7f132E0aCba2CE4de4c4baF9BD2D7D849", - "txHash": "0x0800b0acd9e098b212854c2b3be2533deca93c7e7ac10cd9bfbf80cd9578c2f7", + "address": "0x638A246F0Ec8883eF68280293FFE8Cfbabe61B44", + "txHash": "0xb72913130ec38dce2de381004421f13d442ab172037c78e3693782468bf2b288", "kind": "transparent" }, { - "address": "0x99dBE4AEa58E518C50a1c04aE9b48C9F6354612f", - "txHash": "0x5d15a6295203a9584e41bbf513eba8bd914b0d0def94f90bf8826a04adb049ae", + "address": "0x6C2d83262fF84cBaDb3e416D527403135D757892", + "txHash": "0xb1444a3ff98f2379ab7935f63a3e0fd36bcbcec5cbf070d47ec9890d0ec5e5c0", "kind": "transparent" }, { - "address": "0xCA8c8688914e0F7096c920146cd0Ad85cD7Ae8b9", - "txHash": "0x61bf532eee6c793d824b2b4d25c5b579cf0298873bcd426554e9a68a4ca19086", + "address": "0x2b5A4e5493d4a54E717057B127cf0C000C876f9B", + "txHash": "0x90f584f9f0c492ea231ea5c8541224d9d7c229ae5ed56022b5b812d67a8a878e", "kind": "transparent" }, { - "address": "0x19cEcCd6942ad38562Ee10bAfd44776ceB67e923", - "txHash": "0x23bd1ca1b379d600ba66bca89ae724ead602bbe70d2bce4dc12712805e3b13da", + "address": "0x413b1AfCa96a3df5A686d8BFBF93d30688a7f7D9", + "txHash": "0x5c4f1dacd5add371d2c0a40b2c31a1d8aef85a822d2be9555da7548c4d23d75f", "kind": "transparent" }, { - "address": "0x927b167526bAbB9be047421db732C663a0b77B11", - "txHash": "0xfedab89a178a0196780d98c58d80fd68a2b8bc9ba6f17179223bfcb73cd71f3d", + "address": "0x2Dd78Fd9B8F40659Af32eF98555B8b31bC97A351", + "txHash": "0xb7259496335b7fb35af7b5e9a2ebdc8614eb4fdc7fa521343499fa5a8a13753d", "kind": "transparent" }, { - "address": "0x638A246F0Ec8883eF68280293FFE8Cfbabe61B44", - "txHash": "0x1030f0e2483e5aa07622a1379b87b462e4f0769f76c8c4b356f10585a38bc404", + "address": "0x56fC17a65ccFEC6B7ad0aDe9BD9416CB365B9BE8", + "txHash": "0x5a8335d102824dd9007ee7db80d7cdac075fb7de91afe9621b2a927ff1a32257", "kind": "transparent" }, { - "address": "0xFD6F7A6a5c21A3f503EBaE7a473639974379c351", - "txHash": "0x9dd79df46f4513a6884f59b1578f630cc91a512148fe5b32f0c5a8237ee76c78", + "address": "0x8D81A3DCd17030cD5F23Ac7370e4Efb10D2b3cA4", + "txHash": "0x87c7c1aa70775aa64fc032cf50528c3fd80670a5da350c3a80c618c95224d802", "kind": "transparent" }, { - "address": "0x5302E909d1e93e30F05B5D6Eea766363D14F9892", - "txHash": "0xffd1f7a850039148a5a2093b78014057cebe11141db050b153f800c36e60e559", + "address": "0xcC4c41415fc68B2fBf70102742A83cDe435e0Ca7", + "txHash": "0x5282c57db885d116d18cb3bf6cc7e59223e3ef03d77c6f37fe3a07cb3a933dd4", "kind": "transparent" }, { - "address": "0x4bf010f1b9beDA5450a8dD702ED602A104ff65EE", - "txHash": "0xacd1cd4bce8810cb305d8a8381aed445e9df6b5c0d54ac9c07e520831914ea50", + "address": "0x0Dd99d9f56A14E9D53b2DdC62D9f0bAbe806647A", + "txHash": "0x514533368500eee6509c31de203e734bf59c5c27e3ac972a9ef2b0c1b08b5328", "kind": "transparent" }, { - "address": "0x96F3Ce39Ad2BfDCf92C0F6E2C2CAbF83874660Fc", - "txHash": "0x2d103f965f9c046818bd827296f85bc5261fe0e8769f86813599ca7ad254c397", + "address": "0xeAd789bd8Ce8b9E94F5D0FCa99F8787c7e758817", + "txHash": "0x63bb666e4e5a9770382f7ff4121bbb5ef65893a322208a63095ab41dea27c4ef", "kind": "transparent" }, { - "address": "0xde2Bd2ffEA002b8E84ADeA96e5976aF664115E2c", - "txHash": "0x17aea62be040b7ed6375a3e38f9fd9329cc81ef25d3143c2803b4540c7547e1b", + "address": "0x1D8D70AD07C8E7E442AD78E4AC0A16f958Eba7F0", + "txHash": "0x3e7112ad4f255e4b75db4493a3da0c23e092936da3b65ff03949302452ae2c65", "kind": "transparent" }, { - "address": "0x870526b7973b56163a6997bB7C886F5E4EA53638", - "txHash": "0x0404ea5a423b5f41708bc2185bb930932ebee41e85fa3c618f74b9ab2c71a327", + "address": "0xA9e6Bfa2BF53dE88FEb19761D9b2eE2e821bF1Bf", + "txHash": "0x48731f5d878fca847be622c5ac23975d444c5a56f53b5591f9f8c970209fa8a0", "kind": "transparent" }, { - "address": "0xe1Fd27F4390DcBE165f4D60DBF821e4B9Bb02dEd", - "txHash": "0xfb340a83e7e06a5d2269b551a741c4fedadb3c40e693ef2afed148d49a3e406c", + "address": "0xC32609C91d6B6b51D48f2611308FEf121B02041f", + "txHash": "0x70a0be82a35248f34d4c13f70b9363c0c6e464372fcfddfb039bf67dffcb9b90", "kind": "transparent" }, { - "address": "0xB2b580ce436E6F77A5713D80887e14788Ef49c9A", - "txHash": "0xf7ca0b5f24813594d57078d0709bd9fc3950563561f452d856be890ca7aa0fda", + "address": "0x262e2b50219620226C5fB5956432A88fffd94Ba7", + "txHash": "0xc41e41f1828cc238b7eeb7030162548b1a3096b3e640dacf962688fa8ec6ce71", "kind": "transparent" }, { - "address": "0x66F625B8c4c635af8b74ECe2d7eD0D58b4af3C3d", - "txHash": "0x6dfa6a5adf3e6ef965bb86d99bc1e441d33bb972b0db2008ff4af551217c6c3d", + "address": "0x90c84237fDdf091b1E63f369AF122EB46000bc70", + "txHash": "0xa33df5bea63f000521da7f70b2b0c162af4523e9e6211d4c3b800271f1efca26", "kind": "transparent" }, { - "address": "0x74Cf9087AD26D541930BaC724B7ab21bA8F00a27", - "txHash": "0x6ba07ee80482084fe95ba0f46a48b2dd23858c245561a067585e424d71f85a37", + "address": "0x3D63c50AD04DD5aE394CAB562b7691DD5de7CF6f", + "txHash": "0x8bc71b6aa97ba1cd877466742a504c49e417fe662669b4a2b081d0276bb43ea7", "kind": "transparent" }, { - "address": "0xaca81583840B1bf2dDF6CDe824ada250C1936B4D", - "txHash": "0x17607281a38b7a468ddb59f7247b207a3acd5ad732bce62e698b43021a743ac4", + "address": "0x124dDf9BdD2DdaD012ef1D5bBd77c00F05C610DA", + "txHash": "0x8929fbedf33ce78fef48e3e3f0b8804428cefd6353607c2b1558b0a7de379b22", "kind": "transparent" }, { - "address": "0x5D42EBdBBa61412295D7b0302d6F50aC449Ddb4F", - "txHash": "0x04277c8081379b012223c4156af32009c25a38fa5f5479f39f77d591479e084d", + "address": "0xe044814c9eD1e6442Af956a817c161192cBaE98F", + "txHash": "0x70988d9f2d2d26af925c3ca36f7197984bbbd88f0cd12d8eb152edd9650f1289", "kind": "transparent" }, { - "address": "0xB06c856C8eaBd1d8321b687E188204C1018BC4E5", - "txHash": "0xaa3e798e26d56391520a45271e41c9b2aae7299258d13b6364257b3d840a4a7b", + "address": "0xe14058B1c3def306e2cb37535647A04De03Db092", + "txHash": "0xb0d3084fd2e7f02d0e0e65b435b76cfe658be19e4a2851e1a075a8e45fab01f1", "kind": "transparent" }, { - "address": "0xAD523115cd35a8d4E60B3C0953E0E0ac10418309", - "txHash": "0xa6fd55f55f19e817327ca3d8e087a47c4527054bb8510f9475f873edfd511f15", + "address": "0x74ef2B06A1D2035C33244A4a263FF00B84504865", + "txHash": "0x070d9a910601f2a152b8ddc431485d82c605ffa67247ab4099bce33bae995849", "kind": "transparent" }, { - "address": "0x2b5A4e5493d4a54E717057B127cf0C000C876f9B", - "txHash": "0x6f25783b92ef6015a8b1f60855518a9cc7235961dc45a6b2163125a02d0bcc8b", + "address": "0x6f2E42BB4176e9A7352a8bF8886255Be9F3D2d13", + "txHash": "0xcfa2a39f24fffade54a8bde60574921a0fcc0333a6686a2e7a749a7fd8ff6493", "kind": "transparent" }, { - "address": "0x02df3a3F960393F5B349E40A599FEda91a7cc1A7", - "txHash": "0xcc588c84ac89851e163c1854951039333ef9ec015b5a39ba2d47ab2c1c0d85f7", + "address": "0xA3f7BF5b0fa93176c260BBa57ceE85525De2BaF4", + "txHash": "0x28edb49ea4da17eb7224a989214caa015e633e376a836f715eb44aff79f39be8", "kind": "transparent" }, { - "address": "0x1780bCf4103D3F501463AD3414c7f4b654bb7aFd", - "txHash": "0x32082a83f4e385721acfa4d572545d296fb87077aaa4ae4bdd0fe8349d5d2c81", + "address": "0xa195ACcEB1945163160CD5703Ed43E4f78176a54", + "txHash": "0xdb30c45dd74aaa6c74e8d73368a1b84f6b686e9cf711f34c160d1a9c7c44f854", "kind": "transparent" }, { - "address": "0x71089Ba41e478702e1904692385Be3972B2cBf9e", - "txHash": "0x6bc35f599376cd7a8a5c3c5bfddd558e525aa2f40870140b4bfc65079ea680c3", + "address": "0x6212cb549De37c25071cF506aB7E115D140D9e42", + "txHash": "0xb13bd3fbeda1eb370b19a3b200d9c30f0f235bf64bd7c371b44f6cfa4009c358", "kind": "transparent" }, { - "address": "0xC66AB83418C20A65C3f8e83B3d11c8C3a6097b6F", - "txHash": "0x18acccf6b3d6d67e0f1ca027a6665b77515fd432c61f6c856d3f9f733f6ce996", + "address": "0x46d4674578a2daBbD0CEAB0500c6c7867999db34", + "txHash": "0xea55e2fa28bda07583ae50e6197d36e152ebea98cbc717779a2dba1a4afa7ef6", "kind": "transparent" }, { - "address": "0x12Bcb546bC60fF39F1Adfc7cE4605d5Bd6a6A876", - "txHash": "0x1ae72c0fa75b07421baec5176f11449049163d4b302d2e3fbaffc5a85c55fda6", + "address": "0x9155497EAE31D432C0b13dBCc0615a37f55a2c87", + "txHash": "0xcb0e5e66e3e36b6637638d9912f7dc9e6077d25434f57a5ef66777fdf11d353e", "kind": "transparent" }, { - "address": "0x9BcC604D4381C5b0Ad12Ff3Bf32bEdE063416BC7", - "txHash": "0x2789c817ee012f138247e043298bb3eee8419c889ab017214d7e3c404bac39e0", + "address": "0x04d7478fDF318C3C22cECE62Da9D78ff94807D77", + "txHash": "0xca805f12eba1cdb3b0688da98fbd3d7c13cf2b1825565d08c4fda1353fe47941", "kind": "transparent" }, { - "address": "0xdFdE6B33f13de2CA1A75A6F7169f50541B14f75b", - "txHash": "0xac6064dc98f20d391ee7ac2731854bab8338363e5483f369be1bfb63237fc06d", + "address": "0xd9abC93F81394Bd161a1b24B03518e0a570bDEAd", + "txHash": "0xcdea17f15635d806d21c1123d599aa78918f980c5d7b060fa15ad2c4d7a5ca1c", "kind": "transparent" }, { - "address": "0x38A70c040CA5F5439ad52d0e821063b0EC0B52b6", - "txHash": "0x0a422be89d4e7af4231c5d13bfb187251caefa43cf5d40065ed7c7cb6a20f291", + "address": "0x89ec9355b1Bcc964e576211c8B011BD709083f8d", + "txHash": "0x52f2351c0a8004440ac354585694262a29ff53bbf2f563baccd95b545c5b38fa", "kind": "transparent" }, { - "address": "0xf090f16dEc8b6D24082Edd25B1C8D26f2bC86128", - "txHash": "0x152f117a03df4dfd48f7bec32d89ad962721c36d291a2006834fc3e830a508a2", + "address": "0x72662E4da74278430123cE51405c1e7A1B87C294", + "txHash": "0xc2f3537b1faf08ecda000126ff0b59c254c3e383ec9613e52d792f798b8ce12f", "kind": "transparent" }, { - "address": "0xe039608E695D21aB11675EBBA00261A0e750526c", - "txHash": "0x6ca6e3bb5d851dd2d2e5b4a6e093247ae96c9f73ba491463ec76075de204e188", + "address": "0x0B1a87021ec75fBaE919b1e86b2B1335FFC8F4d3", + "txHash": "0x7bc79f045871388eba66e28e5848278a8ed92c649c88090e2753314d7ca0d9c7", "kind": "transparent" }, { - "address": "0xe70f935c32dA4dB13e7876795f1e175465e6458e", - "txHash": "0x0c74101887a87cf9763e24adaf03e0109944319853ad45dca023ce4172fe8710", + "address": "0x18eb8AF587dcd7E4F575040F6D800a6B5Cef6CAf", + "txHash": "0x8f91b9df55a5a391175d39d6af14e171e355e4f77410e71058707bd06f3d92c4", "kind": "transparent" }, { - "address": "0xccf1769D8713099172642EB55DDFFC0c5A444FE9", - "txHash": "0xf3867ef4477ba07bebf0963147f049b0d3aaf8efb0df11986d21ce631428ad01", + "address": "0xa4d0806d597146df93796A38435ABB2a3cb96677", + "txHash": "0x6150a435ab9ab235b3b484b4eaa69e9ecc683a243fe494b941b5ba45db6297cd", "kind": "transparent" }, { - "address": "0x2Dd78Fd9B8F40659Af32eF98555B8b31bC97A351", - "txHash": "0xa1f4ae443685a02fcb80edb14f3d00230006523196516a9d486c7a6269e6c06c", + "address": "0xAE246E208ea35B3F23dE72b697D47044FC594D5F", + "txHash": "0x5add0c5c94a3ca5295eaebabc5a06c0922345c6393f7034a29f927dd723884ed", "kind": "transparent" }, { - "address": "0x2625760C4A8e8101801D3a48eE64B2bEA42f1E96", - "txHash": "0x72b9d08f5b683e10e64aee406373445eb543f8785743ea6088af4e5d637b0028", + "address": "0xD56e6F296352B03C3c3386543185E9B8c2e5Fd0b", + "txHash": "0xdafa411813f74a4b113df8db6b112d08a04ab7d417a6bcaae7411825897d0b83", "kind": "transparent" }, { - "address": "0xD6b040736e948621c5b6E0a494473c47a6113eA8", - "txHash": "0xafe189b02ee76fcec2fe53bad7127fb911d5fbfec73eaae167e8df3a8990e88c", + "address": "0xEC7cb8C3EBE77BA6d284F13296bb1372A8522c5F", + "txHash": "0xdd6913bbb6f7a24ebc732df0f0d86b482da1dac9df3318d53c603330579ffd2d", "kind": "transparent" }, { - "address": "0xAdE429ba898c34722e722415D722A70a297cE3a2", - "txHash": "0x48139fd558cc46bf5f20c1a35f1b042811ad9770511ecbebe19320875fce51c4", + "address": "0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e", + "txHash": "0x2f3cd5c20991536f62114a4d219f928bfbc6541093660f5dae88bcace0723c6a", "kind": "transparent" }, { - "address": "0xcE0066b1008237625dDDBE4a751827de037E53D2", - "txHash": "0x68d6e0a57d82f160717ec48fb5cdb714bc5fc3d5cb69e01480268b1903f83137", + "address": "0x04F75a27cE2FDC591C71a88f1EcaC7e5Ce44f5Fc", + "txHash": "0xd147bef5d7caafc18b52c1c9a9dddf92ed1c66f2741b564b5c087cd81284e4a1", "kind": "transparent" }, { - "address": "0x87006e75a5B6bE9D1bbF61AC8Cd84f05D9140589", - "txHash": "0xec0605d88a6fddef2c38abc9b9e7c63368299366fec44e0fdd872ec0ca375b38", + "address": "0x820638ecd57B55e51CE6EaD7D137962E7A201dD9", + "txHash": "0x20b851121bae9e302b821241c0b9c58f8d6e65357f7eb15eb837aeb11f1c6f64", "kind": "transparent" }, { - "address": "0x8fC8CFB7f7362E44E472c690A6e025B80E406458", - "txHash": "0xb9b4bce8c70fc10b877f425ddb6dee9806e6aea3389bf7a7c1df077758033a4c", + "address": "0x987Aa6E80e995d6A76C4d061eE324fc760Ea9F61", + "txHash": "0x047c5a10f7e30bcfc2b0e37428ffe48d082fdc24ef98da3a9a7d6bb67564cff7", "kind": "transparent" }, { - "address": "0x359570B3a0437805D0a71457D61AD26a28cAC9A2", - "txHash": "0xfb4f1077ab1b072fe96b3d854af2862e951a2af5b3f67141b266731db1ffae9c", + "address": "0x6B9C4119796C80Ced5a3884027985Fd31830555b", + "txHash": "0x7b26d1e0d28f3e2acd5c558a4dcaaa34a91c3b4b67e04bdb4ba503f9f7ffa530", "kind": "transparent" }, { - "address": "0xDde063eBe8E85D666AD99f731B4Dbf8C98F29708", - "txHash": "0xe9bf021cba2f3fe6234953cafde79a639424657ece28771cc587d7f77a57c4da", + "address": "0xA8d14b3d9e2589CEA8644BB0f67EB90d21079f8B", + "txHash": "0x92c7b4342dfcf6597b7cac2482f80a078ea6e4c35bfc970737598d07f2b3fdfe", "kind": "transparent" }, { - "address": "0x70eE76691Bdd9696552AF8d4fd634b3cF79DD529", - "txHash": "0xe76fbd50ae3890e995fa15f909eb8807b4b78534b1b56b6274c9cf3aa168a0ce", + "address": "0x716473Fb4E7cD49c7d1eC7ec6d7490A03d9dA332", + "txHash": "0xec68f1272865dae247bf984d3a4f3911bbfd8ac52e910846a3c74c4238f3ce08", "kind": "transparent" }, { - "address": "0x67aD6EA566BA6B0fC52e97Bc25CE46120fdAc04c", - "txHash": "0xc88e5a4e99f67088f285fee03d5a6799a1cb8fbc0f545ced922630e25b9c4908", + "address": "0x67Fc5Aa53440518DdbAd4B381fD4b86fFD77B776", + "txHash": "0xbc409c69b624d5e31c90f1c2cc06bbf1496451d2d69ba0bb40558141c0b76bdf", "kind": "transparent" }, { - "address": "0xcD0048A5628B37B8f743cC2FeA18817A29e97270", - "txHash": "0x0c12ca54980b5c0a39afed2241d3700d6f3b80c67f6c5ccdbc39bd19c5405a3e", + "address": "0xf4e55515952BdAb2aeB4010f777E802D61eB384f", + "txHash": "0xcc824cedc9c2d1facfadac4953680de01820899687e7f1a916797910f647d8a1", "kind": "transparent" }, { - "address": "0x8bEe2037448F096900Fd9affc427d38aE6CC0350", - "txHash": "0xd139fa6a4e828672ef5e2cb136b7ecee2412747f51f2831b3c76f909e78243d6", + "address": "0xcE7e5946C14Cdd1f8de4473dB9c20fd65EBd47d0", + "txHash": "0xe7f86a6f53575353097d896f51476ee50a7f962d8b5054b35385868d86e9c31c", "kind": "transparent" }, { - "address": "0x8D81A3DCd17030cD5F23Ac7370e4Efb10D2b3cA4", - "txHash": "0x386f4d3c4f9d5232dd7581c6223bed96cb36bea5cf786813768f8bcb9a4e5ec2", + "address": "0x4E76FbE44fa5Dae076a7f4f676250e7941421fbA", + "txHash": "0xa694075135c85059552d6d41cf1e0603006dfddad93e9d31940209e5a037e582", "kind": "transparent" }, { - "address": "0xa722bdA6968F50778B973Ae2701e90200C564B49", - "txHash": "0x14451b9af518e5cc69627e2ea96b8fe691227543d1f5a3c7bb702a4e7b02648e", + "address": "0x49AeF2C4005Bf572665b09014A563B5b9E46Df21", + "txHash": "0xb5703d5b195a9de45ada2362b8de665b31de3a2a45a0bee421b455ef4735994a", "kind": "transparent" }, { - "address": "0x967AB65ef14c58bD4DcfFeaAA1ADb40a022140E5", - "txHash": "0x5e7bebb42e097a68d60a8c93031bd18d819ba32be239157797acf92271c22f79", + "address": "0x72F853E9E202600c5017B5A060168603c3ed7368", + "txHash": "0xa1d321550ab3736a78ab228c2782d4459da284d18eab33c32996da30c393bc4f", "kind": "transparent" }, { - "address": "0x0aec7c174554AF8aEc3680BB58431F6618311510", - "txHash": "0xccdda93b1b46617eb3d9ea3f34bf305ef0e96686ffed13ff029118049ba3c801", + "address": "0x26Df0Ea798971A97Ae121514B32999DfDb220e1f", + "txHash": "0xd0eda354fc5fd272e500781ee6691c27c7e0e0d3483775467aa2356eb335a286", "kind": "transparent" }, { - "address": "0x871ACbEabBaf8Bed65c22ba7132beCFaBf8c27B5", - "txHash": "0xdb5eb2f70aa06917ee4445d749d10f619808e9eaa262b448e38e5b8ff8e331e3", + "address": "0xa138575a030a2F4977D19Cc900781E7BE3fD2bc0", + "txHash": "0x9fdee9dd06fdc759fc91f471d1b3684b19d1d8270be49e97fb8d39f9d3f93955", "kind": "transparent" }, { - "address": "0xC1e0A9DB9eA830c52603798481045688c8AE99C2", - "txHash": "0x478997b2f71a79609ab722ee6a40227463ce710b63055d37c51e6990ebaa1897", + "address": "0xf524930660f75CF602e909C15528d58459AB2A56", + "txHash": "0xfab41dd05bc5da1b889f23d82f24025e14de5ad22dc91ca2f16b445bb1fbe2e3", "kind": "transparent" }, { - "address": "0x1c9fD50dF7a4f066884b58A05D91e4b55005876A", - "txHash": "0xb0c01a75f5d06b74d0a69bd6706bdae5800fc3b0088ed0fa5a7bdb2bcb678392", + "address": "0xAAF0F531b7947e8492f21862471d61d5305f7538", + "txHash": "0x7722858688206c872d784220a722921ea7369e521143aae389e5777d73ba06ab", "kind": "transparent" }, { - "address": "0x71a0b8A2245A9770A4D887cE1E4eCc6C1d4FF28c", - "txHash": "0x847dc34dd64de21f428914a22de9aee1fbcb7ade2fbe20f42d4814773a29a06a", + "address": "0x81f4f47aa3bBd154171C877b4d70F6C9EeCAb216", + "txHash": "0x1ab41f19451d90156ca7762cc60adc82fb6e79c7c145313095dbac5c8dc3d13b", "kind": "transparent" }, { - "address": "0xAe120F0df055428E45b264E7794A18c54a2a3fAF", - "txHash": "0x0989e27c7e04a3f37c145381d55a2e79b970665f72cf06c2c95a15ff5692611a", + "address": "0xE5b6F5e695BA6E4aeD92B68c4CC8Df1160D69A81", + "txHash": "0x59667bbc3b42fbaa3610a41927d78ff5babfa6ad716b138346269f571a107798", "kind": "transparent" }, { - "address": "0x9Fcca440F19c62CDF7f973eB6DDF218B15d4C71D", - "txHash": "0xef03ca6a3850c9b251622273dfec115bba85e64e5eaf2bd2cbf03789b8d3f132", + "address": "0x01c93598EeC9131C05a2450Cd033cbd8F82da31e", + "txHash": "0xbfee457090296d4f457c01143b26674dfd284653ff19b12a86af12ac78702e24", "kind": "transparent" }, { - "address": "0x22a9B82A6c3D2BFB68F324B2e8367f346Dd6f32a", - "txHash": "0x37f187c2f8bc58ceb77dd8e249af973553d036311c473a719b93660e3eacb348", + "address": "0x33f4f8bf90d8AA3d19fF812B50e79c15Df0d0b03", + "txHash": "0xb79751c0d739d4015945684c70bbb88a88a1cbf11bbdbfc838b0a4a4953e0e09", "kind": "transparent" }, { - "address": "0x7C8BaafA542c57fF9B2B90612bf8aB9E86e22C09", - "txHash": "0xb575ae62efa1837f5c31c779abef6dc3c8b9b83826eeb3bac77d7f67098c5747", + "address": "0xE57A305f34fD0B6A55A66e8ec9559e6573100cBe", + "txHash": "0x8f9ca6b1d40672c1f6d8c6b40f9d7005a5816e211b507c6a317bcc1238477e2a", "kind": "transparent" }, { - "address": "0x5e6CB7E728E1C320855587E1D9C6F7972ebdD6D5", - "txHash": "0xfd3ffe24e7fe01c6b8ea37c0b7d1c6499e892354a71af55fb35ea713325fc9a7", + "address": "0xB354ECF032e9e14442bE590D9Eaee37d2924B67A", + "txHash": "0x02d5b9851d21dc0906a8fa4a11ee0a46c257702e35d1424f62d8c1e6e8cc40f7", "kind": "transparent" }, { - "address": "0x0Dd99d9f56A14E9D53b2DdC62D9f0bAbe806647A", - "txHash": "0x141325377637b5f5659929489d9563fc2896f04fe282af0dfccc7c81fde5e780", + "address": "0x00436c9F57dfFd96cECd129c04D9E488c57266cF", + "txHash": "0x8ee64dc49999cd5a570d1d2bf0935c90bc44cb3302ae9fdb07026fb5636215f5", "kind": "transparent" }, { - "address": "0x95775fD3Afb1F4072794CA4ddA27F2444BCf8Ac3", - "txHash": "0x9ac0d8bec6bbc57798045fc72390dbd0a5688939909668919396af33be257765", + "address": "0xD962a5F050A5F0a2f8dF82aFc04CF1afFE585082", + "txHash": "0xd3cfa390401b3689f650f5a84a471fb1dac3144f814ba5c68a0ca96dbe1ea194", "kind": "transparent" }, { - "address": "0xd3FFD73C53F139cEBB80b6A524bE280955b3f4db", - "txHash": "0xc6fc726e4032525f7d70dd58dc916d78f4c7740e4d7cb19beed045b50327af69", + "address": "0x0BbfcD7a557FFB8A70CB0948FF680F0E573bbFf2", + "txHash": "0x0d596ceb8cf21d4405c76cb68485e6ebe70ff2213a0a10a03e3baedfb87e27fc", "kind": "transparent" }, { - "address": "0x9fD16eA9E31233279975D99D5e8Fc91dd214c7Da", - "txHash": "0x7839c98420a48f4de43fdc6e918ce23eba94cb3f75e57d46e5ee0e66d19b181d", + "address": "0xdABF214E5a833269c192D9d70efDdE174680628D", + "txHash": "0x470e5e8b323b743fc39c839e15ffa873fcd4db079c430ff8184dbf4b37b50cc7", "kind": "transparent" }, { - "address": "0x987e855776C03A4682639eEb14e65b3089EE6310", - "txHash": "0xe35ba4df7d77917cdbea12d00daaebf30ae71f7a04a0b5eca1a8acac96331d33", + "address": "0x81F82957608f74441E085851cA5Cc091b23d17A2", + "txHash": "0x4190146c896598c68c29d0377f24ef245c16ec09a90ece513d33d0eeada2ad1f", "kind": "transparent" }, { - "address": "0xE8F7d98bE6722d42F29b50500B0E318EF2be4fc8", - "txHash": "0x85db7c964485b62786ab2fdfeeb121faf2f81aeda226ec9f8986e6653b52a847", + "address": "0x9a8164cA007ff0899140719E9aEC9a9C889CbF1E", + "txHash": "0x857a5aaacf569766236e5aebc09a04b349a45c69e271650b6a97f80f0b7d4ac3", "kind": "transparent" }, { - "address": "0x2c8ED11fd7A058096F2e5828799c68BE88744E2F", - "txHash": "0x941114205ffe600bf090358d1005ea173964618bed9243cdb969da7feb51c1a8", + "address": "0x69F94e46cbC82Ab02781ac4FaFc3580d21f1a888", + "txHash": "0xb4f5e349c9872dc25e0f63cafbb1c4880d4290914029334e8d19e78783bfbb4b", "kind": "transparent" }, { - "address": "0x75c68e69775fA3E9DD38eA32E554f6BF259C1135", - "txHash": "0xe1f8794a28c285b7e7271eaca153b15fd65b1681b49d31c132779d4799e4372b", + "address": "0x5BFaaA02cAb795d576276a19CB1c2D2D2d652717", + "txHash": "0xfe7ea834e5ab2705869ed8875fbfba0931c19ab8ad3e1f9df2d0e97d3d678aed", "kind": "transparent" }, { - "address": "0x975Ab64F4901Af5f0C96636deA0b9de3419D0c2F", - "txHash": "0x6a53ae4ff1a560bee86ce5f5c50c4ceeb07cff127bba709f5ba7baa354ef1428", + "address": "0x0462Bc7390a33C8BB748d5c2ad76E93690A365c5", + "txHash": "0x37f058d7bc14303a55d8f1dc079e5c99cd48581b213fe98a49d8a214640925ca", "kind": "transparent" }, { - "address": "0xCd7c00Ac6dc51e8dCc773971Ac9221cC582F3b1b", - "txHash": "0x76e0ddbfa83261b6824a4ccc92f7a6f652d9202e944f6bd96b5ac9ca11816649", + "address": "0x1c32f8818e38a50d37d1E98c72B9516a50985227", + "txHash": "0x53615903713668531b92a8d168c9802444e3510634f846636bed3f19c3a62cb6", "kind": "transparent" }, { - "address": "0xdF46e54aAadC1d55198A4a8b4674D7a4c927097A", - "txHash": "0x8bb6551888a457699fa92ba5a7168b325269b39f17e5e17a2c79e79565a007b1", + "address": "0x0BFC626B583e93A5F793Bc2cAa195BDBB2ED9F20", + "txHash": "0x68f9e119ad36bd813c75f168bcc18f2d6ebe9311ccf6c0f197973ea1391338bf", "kind": "transparent" }, { - "address": "0xFD2Cf3b56a73c75A7535fFe44EBABe7723c64719", - "txHash": "0xf25fe32af8db5801973534b21dbfdf4a485ed894386dacb32846dc468eabf726", + "address": "0x76d05F58D14c0838EC630C8140eDC5aB7CD159Dc", + "txHash": "0x8a61e302d71aaa9b13882efd7c6c46b94268d0dd587ba5889e53e4a28c3f8c0b", "kind": "transparent" }, { - "address": "0x666D0c3da3dBc946D5128D06115bb4eed4595580", - "txHash": "0x990986f98ee30a342eca2b5250cec0c855a81f3bbfcb0ba3e60d7fe34c12680d", + "address": "0xd2983525E903Ef198d5dD0777712EB66680463bc", + "txHash": "0x5fca9229b20da44f3144666bb04fcc9cbf3275b53a3b01aab4102eff23e05010", "kind": "transparent" }, { - "address": "0x1D8D70AD07C8E7E442AD78E4AC0A16f958Eba7F0", - "txHash": "0xf8015ca34415459227f867981ed4239de71a692c9e9f830cd075af10136038e3", + "address": "0x862E3acDE54f01a4540C4505a4E199214Ff6cD49", + "txHash": "0xa8936ec9b5451e5e77ec4e47dcf9d562e3e30d094f9d5c84675c5b9d772df54a", "kind": "transparent" }, { - "address": "0x1E3b98102e19D3a164d239BdD190913C2F02E756", - "txHash": "0x218cb627e617e13d7c651d4754307bfee4bc77cd055f4e1a721115b1e96a9c8c", + "address": "0x37453c92a0E3C63949ba340ee213c6C97931F96D", + "txHash": "0xbf85ab6da2b534336e81a4d7331cc65dad37d052986942e7c3007b6bc2af08bc", "kind": "transparent" }, { - "address": "0x286B8DecD5ED79c962b2d8F4346CD97FF0E2C352", - "txHash": "0x769b0da0d6384519ddd2bc2b757e9ba458dd8f24b96bdec6fd5a5683ed24a892", + "address": "0xAAd4F7BB5FB661181D500829e60010043833a85B", + "txHash": "0xe1b60763743ba6c1a194aea827521bb61cc90634d5e3ab227e4f89cd3d80fa0d", "kind": "transparent" }, { - "address": "0x70E5370b8981Abc6e14C91F4AcE823954EFC8eA3", - "txHash": "0x2722d3f8bc7cdf5d333ae69f9e5d39e664ac0c54ce2557be4557842fcb50ee85", + "address": "0x2B64822cf4bbDd77d386F51AA2B40c5cdbeb80b5", + "txHash": "0x77e1ead4aa50f7b80821e8d2e6e034d74cbc96744bb87f970c25389eddbd312b", "kind": "transparent" }, { - "address": "0x9338CA7d556248055f5751d85cDA7aD6eF254433", - "txHash": "0x847aea5e4fa487a54f832e29eeaed9425f0880451c1fdc0bbaacb62c3e6f84ac", + "address": "0xCd9BC6cE45194398d12e27e1333D5e1d783104dD", + "txHash": "0xb531c3c5ac8c8360e4338e2f8697cb2555bb9d6fcaf7c6639f017873c13e3a34", "kind": "transparent" }, { - "address": "0x7Cf4be31f546c04787886358b9486ca3d62B9acf", - "txHash": "0x463c66d90784b195990ea7782050234b28a29767cf23acb77f8f3fb1cdf61ea8", + "address": "0xd8E4Af8145A8288537B85878bb2371fa070Aa5eF", + "txHash": "0x650df3dbd878f14853e549e9a828a27a0d9b001a84ac53969875d2e5060a8a71", "kind": "transparent" }, { - "address": "0x0c626FC4A447b01554518550e30600136864640B", - "txHash": "0x134a79d4bad66a96f13a8febc5c4bd2c6baa72fb676ff5ef0e8fb968c7d3831a", + "address": "0x86c64cB21f88fA9E2c46b61c35889E75f08FDce1", + "txHash": "0xaa232771cb0aab5d40e983cee938c6c589702bc70ea2818dadb0a776f72d9bcd", "kind": "transparent" }, { - "address": "0x2A590C461Db46bca129E8dBe5C3998A8fF402e76", - "txHash": "0x44fadbcb000c9a951e204ab01019e52b9f93f4d68a4d811c8323d4fb92fef9f3", + "address": "0xA901DA770A472Caf6E6698261BB02ea58C5d3235", + "txHash": "0x3580fa8e1c8bd78af16f2e81a57fe13a2606ff19120c53e589b276ea03b3de47", "kind": "transparent" }, { - "address": "0x2F54D1563963fC04770E85AF819c89Dc807f6a06", - "txHash": "0x25ccc006b8c84360f40cf9c6d586b455ace41b9866d8c4e6355a854c4cdc4a5c", + "address": "0x5f58879Fe3a4330B6D85c1015971Ea6e5175AeDD", + "txHash": "0xd4e299027e3d8ccfdaad0081a0f32e7351edfbe7b49618abf9c5f45fe2ad0bb3", "kind": "transparent" }, { - "address": "0x9849832a1d8274aaeDb1112ad9686413461e7101", - "txHash": "0x1336cc9c961af9a0d20467a32c163c1cdba6048122c30063d894bc23c5af214c", + "address": "0x63ecE4C05B8fB272D16844E96702Ea2f26370982", + "txHash": "0x8bfdaaa815196dee2069ea6bd1f388b71eadbd2c96d55299be359d2af0d050b1", "kind": "transparent" }, { - "address": "0x4eaB29997D332A666c3C366217Ab177cF9A7C436", - "txHash": "0x1b6cda7c67148e59253b44611a0159788cbfbb5a8c34c75e141f0d5fc02bc5c2", + "address": "0x8dF2a20225a5577fB173271c3777CF45305e816d", + "txHash": "0x9b7b3096794a63b4d51450921955e955d354bc25923cfbf3e31c9a343e5ca062", "kind": "transparent" }, { - "address": "0x627b9A657eac8c3463AD17009a424dFE3FDbd0b1", - "txHash": "0x9d1710379596039ab6933a88bae81be6280fecef635c5d3a75c87a4232aeaacc", + "address": "0x645B0f55268eF561176f3247D06d0b7742f79819", + "txHash": "0xd49f19eb244b8dc40c25549188fb81cf117b7f6b601272a263368be772753c87", "kind": "transparent" }, { - "address": "0x8E45C0936fa1a65bDaD3222bEFeC6a03C83372cE", - "txHash": "0x491d96afc24bce38448191268f69e7a2b155a0e9afe5f717d0d1924d6852d797", + "address": "0x8AFB0C54bAE39A5e56b984DF1C4b5702b2abf205", + "txHash": "0x1ae3d3f8208219f0eaa0ba6a8f7324ecac2ac3161b924bc0109e8b111d593b24", "kind": "transparent" }, { - "address": "0xf4B146FbA71F41E0592668ffbF264F1D186b2Ca8", - "txHash": "0x986cb41433ad27db133f2aa6538a08e09dac63ee758d0c8480b6b8edff03ac59", + "address": "0x6B763F54D260aFF608CbbAeD8721c96992eC24Db", + "txHash": "0xfec94df2cdf86ef503b2038fac1771197448f427c03125a3f02018b554be3eaa", "kind": "transparent" }, { - "address": "0x172076E0166D1F9Cc711C77Adf8488051744980C", - "txHash": "0x64b492e1258ec68345ca901a22d89524a7bbdc5f1ac883f9bbd06ff455a23502", + "address": "0x226A19c076a3047a53e5430B14bcDB42dbccA159", + "txHash": "0x521a9f7b8f4ec1ce512f91f2f55becb4db7210ff3b26c5981588578708db5215", "kind": "transparent" }, { - "address": "0x720472c8ce72c2A2D711333e064ABD3E6BbEAdd3", - "txHash": "0x76a4a8f820066b57dcefc049aa1dbb8792ebc4683cd533acd1a2838c1540740b", + "address": "0x093D305366218D6d09bA10448922F10814b031dd", + "txHash": "0xfa216cf7cdd8ec029f6b24e2e93d67ad2a347a0142111d4f3a6867fd513a2e5e", "kind": "transparent" }, { - "address": "0xe8D2A1E88c91DCd5433208d4152Cc4F399a7e91d", - "txHash": "0x7552da2bc0284892697a52b8c90cf008119b46da16ec13e7e0f1a17bb808b5c3", + "address": "0x9581c795DBcaf408E477F6f1908a41BE43093122", + "txHash": "0xc6c8387f568c70e4d4b9d454342d31e35875c9891e1056a7f61c1714925cc1fb", "kind": "transparent" }, { - "address": "0xc0F115A19107322cFBf1cDBC7ea011C19EbDB4F8", - "txHash": "0x6dfed7e5ea7375cf29ba8478f5c09249ec06f18d72c76fc5c5d8f99ee5901092", + "address": "0x8a6E9a8E0bB561f8cdAb1619ECc4585aaF126D73", + "txHash": "0xa9ddbbc21bf7ee3e394de35131710093b2483877461ca60e17d051aee7278fec", "kind": "transparent" }, { - "address": "0xc96304e3c037f81dA488ed9dEa1D8F2a48278a75", - "txHash": "0xbd77b847b02a9cf9f9cd94020d7187470013980768dba6c3698f5ffa1cfcdbf2", + "address": "0x492844c46CEf2d751433739fc3409B7A4a5ba9A7", + "txHash": "0x186ef67eb8696eaa83947f13acff4b8b94d48ff2e35a9a7a7959754d75c35072", "kind": "transparent" }, { - "address": "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707", - "txHash": "0xd737a778d62a7b6d5d916196842651534a6ebbbd7265d205a4f2a9737bd8484a", + "address": "0xC1dC7a8379885676a6Ea08E67b7Defd9a235De71", + "txHash": "0x652e1e23a142b0b237eaac3fdcd20503b88139c8898ddee803dc056f6d1f97f9", "kind": "transparent" }, { - "address": "0xa513E6E4b8f2a923D98304ec87F64353C4D5C853", - "txHash": "0x362e37fc25a891bea8ec6be478c0274411589986fa5032b27c5f095ce43fe47e", + "address": "0xCC9676b9bf25cE45a3a5F88205239aFdDeCF1BC7", + "txHash": "0xa7f7e2fe37992e5a91f9c97e65fe685f27d5e40a5350132a3978a8dce563ad22", "kind": "transparent" }, { - "address": "0xA51c1fc2f0D1a1b8494Ed1FE312d7C3a78Ed91C0", - "txHash": "0xd3916dc15abd61fa8445657420c6bc00b96652bc31a6a6bb2dc167d222cdda5c", + "address": "0xDC0a0B1Cd093d321bD1044B5e0Acb71b525ABb6b", + "txHash": "0x68bbe7e22f1d23d4ab2042d00fe1411037fa13047c9237241d9231d633eadfd2", "kind": "transparent" }, { - "address": "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82", - "txHash": "0xff41c51821a448d0b0fc7f74302d567a4bdc9cf14798d804bf6093729ea12d97", + "address": "0x1D87585dF4D48E52436e26521a3C5856E4553e3F", + "txHash": "0x35a809f62b98d43e497cd90531ab39b73c44fba8c0af9e3af53d51f72727501c", "kind": "transparent" }, { - "address": "0x3Aa5ebB10DC797CAC828524e59A333d0A371443c", - "txHash": "0xa2ce52961234efb53f0f9e87c0fe151682e6d3f48660660735bbee54eb88690a", + "address": "0x2B8F5e69C35c1Aff4CCc71458CA26c2F313c3ed3", + "txHash": "0x9d3e02afc58219194c46d7a83fc71e4e34c0dc1ef13766fe33d1bce6489683bc", "kind": "transparent" }, { - "address": "0xc6e7DF5E7b4f2A278906862b61205850344D4e7d", - "txHash": "0xa1cf1eead46119f56d8fe9d68772769f5dbfb78d3634e72e64f93cc3c9397c79", + "address": "0xA899118f4BCCb62F8c6A37887a4F450D8a4E92E0", + "txHash": "0x47bda590191ddffd55a1885a85d0983ce4acb92275cc4f9a3fb61acd3e008fd4", "kind": "transparent" }, { - "address": "0x4A679253410272dd5232B3Ff7cF5dbB88f295319", - "txHash": "0x2080073aa33ace0acb53131d009c0a267390a40a86bb78778e616bf878285103", + "address": "0xD185B4846E5fd5419fD4D077dc636084BEfC51C0", + "txHash": "0x1b07ab0bc559e44322a87b7fefe57fd39637fe6b897c58dee261ea9121a493f8", "kind": "transparent" }, { - "address": "0x7a2088a1bFc9d81c55368AE168C2C02570cB814F", - "txHash": "0x25d83dcd89de18e9d04a469fe987a7994ff10708913ac5b51c78f5649469ebc8", + "address": "0xBCF063A9eB18bc3C6eB005791C61801B7cB16fe4", + "txHash": "0xb01249b359a7a83e23bdd6d016c064d5566d7cb218dffa83ea7084a9e32c818b", "kind": "transparent" }, { - "address": "0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690", - "txHash": "0xe0a43ff87b1943efe30581e001aa422fca3f34ba3562fa2788e3b8f15e37deff", + "address": "0x364C7188028348566E38D762f6095741c49f492B", + "txHash": "0xcd76725337e2d8a57f52764c8cf2cb46a9bd820ce4fd17666ae591cd5b286b7b", "kind": "transparent" }, { - "address": "0x84eA74d481Ee0A5332c457a4d796187F6Ba67fEB", - "txHash": "0x786d75624c914e2bd4fa6476594bb9a8d4242a0a50cf0bd30cdcc096784ae94c", + "address": "0xF2cb3cfA36Bfb95E0FD855C1b41Ab19c517FcDB9", + "txHash": "0x9035914873124ff056a33a021a44a219aabf39a5275e76dba3ebfba68f24a46b", "kind": "transparent" }, { - "address": "0xf5059a5D33d5853360D16C683c16e67980206f36", - "txHash": "0xd2efc98fb17eb8201df92136d0622f793804d763a8b931997f53cd77fa643da2", + "address": "0xAB8Eb9F37bD460dF99b11767aa843a8F27FB7A6e", + "txHash": "0xa11e81566363f7f230efe90341e55ea0fd15afb9d3271debf333c10dc1ed7f96", "kind": "transparent" }, { - "address": "0x95401dc811bb5740090279Ba06cfA8fcF6113778", - "txHash": "0x54c0290e27f3ed4099f86a34c00c99291550a8e25cc991e05288fa39e751dfa3", + "address": "0xbB57FE325e769DEDB1236525a91cDEd842143fA7", + "txHash": "0x9ac319a1245d959286ae05898c7fb2700bb904ccb709c5b8cdf814109f2218d5", "kind": "transparent" }, { - "address": "0x0E801D84Fa97b50751Dbf25036d067dCf18858bF", - "txHash": "0x9209b8bfce59e71c46273c2a12ad1cb85689708d30710ef87520677f53470314", + "address": "0x6712008CCD96751d586FdBa0DEf5495E0E22D904", + "txHash": "0x50270bae5b4851ae7b3fa95817c6b047b0514032a075eaff11546113075c2489", "kind": "transparent" }, { - "address": "0x8f86403A4DE0BB5791fa46B8e795C547942fE4Cf", - "txHash": "0x6a0ed12fc930254da04ff3bca52be0ab4c0d877a2f5ae8ebfe0ba919014045e5", + "address": "0x1f9c84B161b2c7FFB540BC5354543108cCE37df1", + "txHash": "0xb030a77c749fa2b3a70ae7d43dfdf070bf5b7cf8ac2d2485573724d26390d498", "kind": "transparent" }, { - "address": "0x4c5859f0F772848b2D91F1D83E2Fe57935348029", - "txHash": "0x646833670ffc4436024d9e81635afb275ede2b1db7df4fa3c3aac3f2470bd655", + "address": "0x87E8f332f34984728Da4c0A008a495A5Ec4E09a2", + "txHash": "0xb1ce0e3a6e4df055df0a2c8973acc3360f9dbe7b990d7ddebea8c8a820926e89", "kind": "transparent" }, { - "address": "0x1291Be112d480055DaFd8a610b7d1e203891C274", - "txHash": "0x922d13462af2801b880ec1433394365795d8c0c53b534c4a68c3b96cb303213a", + "address": "0x1E2e9190Cea3A97b5Aa85d9757117F499D31C47d", + "txHash": "0x6464500c3858597839c521bb841a23db0033086787eaa169d397cedf650dca54", "kind": "transparent" }, { - "address": "0x2bdCC0de6bE1f7D2ee689a0342D76F52E8EFABa3", - "txHash": "0x6e78504964e9595a72ef5e45d94467a812870ec72633644d67e5a514b3f445a5", + "address": "0x53DaB165b879542E9aDFC41c6474A9d797B9b042", + "txHash": "0x2f77810312700b228cf19587fe7081c447ce3e86640df5e84af29e464e2d8bc0", "kind": "transparent" }, { - "address": "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0", - "txHash": "0x79498917eec9f2e01cf6892f2cff7190dee566a4d85eb11fa4e363b61f69c58c", + "address": "0x4BEA9aAe24187d6128403DC556510A18d727871a", + "txHash": "0xbe4dd20817c400315d8a3fe60a0c148fc3b6f7ca89bb6156bf712299a67c23d2", "kind": "transparent" }, { - "address": "0x1429859428C0aBc9C2C47C8Ee9FBaf82cFA0F20f", - "txHash": "0x0f1f16799829f1444c8fa8eb9d44c7627548b71c679f4c31aa4c27c4b2658a4e", + "address": "0x64386BC53c213F23C6960d3e080139A0f9Ef1733", + "txHash": "0x80ad44dc7957e9e2c6916a6f530de95d9148bd9400747a18c5059a697376a5ed", "kind": "transparent" }, { - "address": "0xB0D4afd8879eD9F52b28595d31B441D079B2Ca07", - "txHash": "0x08eea8b0d9672112b62eeadcdef55bb5428991d4f972c9a8986a209c7d44f7cb", + "address": "0x295129609d6876f5ECC62052Ba6bc082139A982c", + "txHash": "0x0fa37f342776f1f07e8aba35d5469d36de660c754044650fd124b676fef786ba", "kind": "transparent" }, { - "address": "0xdbC43Ba45381e02825b14322cDdd15eC4B3164E6", - "txHash": "0x869c9685251412cf2a94907927e28e7f335c71c3890810d5913e3c603fa01555", + "address": "0x737b8F095E3c575a6Ae5FE1711AdB8F271E20269", + "txHash": "0x2435764c5ab4c316e60be1ac39887f57ee3554e1586db2572e0464040753d81f", "kind": "transparent" }, { - "address": "0x04C89607413713Ec9775E14b954286519d836FEf", - "txHash": "0x09ec33b783e2f41c1f12bc1a7bd4c9bfde51e98fb090a7d137164120ee0ee531", + "address": "0x0Ac85d55ebFc7f7b0cF4c13bb3BD6Eaf3909d62d", + "txHash": "0x359a5272e53fb90671ada54f9c99b7acaa94ce392ab8c75fba9bc291c90233ce", "kind": "transparent" }, { - "address": "0xDC11f7E700A4c898AE5CAddB1082cFfa76512aDD", - "txHash": "0xfbc8bd875a8a8cd8f564b68bdebe6d9c1854e63c41217c0763d612023c24f3cb", + "address": "0x8C08821f5f94b519c853486eB131667AA528A460", + "txHash": "0xcd4c8f8be2ed5ae1c1f4c0c0c0d833241e57baf00fc7a2dca9790e82efe66928", "kind": "transparent" }, { - "address": "0x51A1ceB83B83F1985a81C295d1fF28Afef186E02", - "txHash": "0xf3d90af478c01e0dd7837cc1c803bcc9a3537279495ece64d47293539882cf6d", + "address": "0xcf23CE2ffa1DDd9Cc2b445aE6778c4DBD605a1A0", + "txHash": "0xbb260c19ff1d825440d04e37af93b6de3525284e6cbfbefe95c92f91e744de0a", "kind": "transparent" }, { - "address": "0xfbC22278A96299D91d41C453234d97b4F5Eb9B2d", - "txHash": "0x82dd34891964349eb5a3a2f4d60de3d73ab8c24e133c89bc9e783ac61b486d1b", + "address": "0x2963ff0196a901ec3F56d7531e7C4Ce8F226462B", + "txHash": "0x78f8228bc2842b6fd2e5c7f08ef5020a398b6f6af9d5af85d86486bd06a10159", "kind": "transparent" }, { - "address": "0x46b142DD1E924FAb83eCc3c08e4D46E82f005e0E", - "txHash": "0xbbaef08a9e4e6eb54e33c516335a05a8d65eba6561012b6a92bf1bbfe246c7f6", + "address": "0xA13d4a67745D4Ed129AF590c495897eE2C7F8Cfc", + "txHash": "0x46fee71ae0dcfbc7761a465ae53ef33bc05de56999bc267f24c7489ffb8ec918", "kind": "transparent" }, { - "address": "0x7A9Ec1d04904907De0ED7b6839CcdD59c3716AC9", - "txHash": "0xa44221030a6ddacb6322adf3563ab2340e8342cfa2ed206f890e6f024956946c", + "address": "0x23228469b3439d81DC64e3523068976201bA08C3", + "txHash": "0xd2ded286070daefaf34265219f2f04ffc0f5a03f2a8f98c0373c71476fa3efa4", "kind": "transparent" }, { - "address": "0x49fd2BE640DB2910c2fAb69bB8531Ab6E76127ff", - "txHash": "0xf4372e7967f2de46a4f1b99152e749a9e45ba244ea7572208f7145fb98a2bf7c", + "address": "0x01D4648B896F53183d652C02619c226727477C82", + "txHash": "0x6ba81b50e1b69c22d6b9873e1e94a80d680ec324ec5bdbe47aa26755f475efa4", "kind": "transparent" }, { - "address": "0x4b6aB5F819A515382B0dEB6935D793817bB4af28", - "txHash": "0x6be1a2def46d03c18a6620cd31613b4a14b5d8779cf165f436b3fcd2f008674c", + "address": "0xf4fa0d1C10c47cDe9F65D56c3eC977CbEb13449A", + "txHash": "0xc1068751eed6b651c3a4901b9a78c51d0d125128a4e983131dc0373080548b22", "kind": "transparent" }, { - "address": "0xCace1b78160AE76398F486c8a18044da0d66d86D", - "txHash": "0x59d07830296af664a104c3be448fe953811cedaccb09153f221ed83482fe547a", + "address": "0x88B9Ad010A699Cc0c8C5C5EA8bAF90A0C375df1a", + "txHash": "0x9098bd1c0412da5e80af77823dd41e42d40edb2a94d1c2041fc0ef0d6720a289", "kind": "transparent" }, { - "address": "0x276C216D241856199A83bf27b2286659e5b877D3", - "txHash": "0xa684885ec198ae04985f9b271f21eda0668e3063eb34b0f9a948a64e7e22f897", + "address": "0xAaC7D4A36DAb95955ef3c641c23F1fA46416CF71", + "txHash": "0x908413ce836f33c60462af42d47cc45f695a655e1ea04f6248771da5669205f1", "kind": "transparent" }, { - "address": "0x3347B4d90ebe72BeFb30444C9966B2B990aE9FcB", - "txHash": "0xfffa8ad1ecdd3252e0329a0f749797401f5dd07e84195b01cb663e3605d83bae", + "address": "0x594f79e85F6f041eb56cF6822FF4125ee316409E", + "txHash": "0x53d71a71480320331a5455aa9c96e64af1dad1e836fad17281985da7bae8eebf", "kind": "transparent" }, { - "address": "0x5fc748f1FEb28d7b76fa1c6B07D8ba2d5535177c", - "txHash": "0x12943c2bfb680868a63cce39ae895ff91cde04c856f55c52a792ff9475998329", + "address": "0x2fe19128A8257182fdD77f90eA96D27cA342897A", + "txHash": "0x6c46eac956f7743ee76c0faf244a0b22def34d4014567e8543f0cb419383e82c", "kind": "transparent" }, { - "address": "0xB82008565FdC7e44609fA118A4a681E92581e680", - "txHash": "0xa47686b1f474ae2ec468eb702e1cbee2f4141101734b1e7a9a5b8167a7d0e74e", + "address": "0xb9b0c96e4E7181926D2A7ed331C9C346dfa59b4D", + "txHash": "0x898024368e85909e5e61b5fe327fdd5b536e7ae784c69a7f557f708579eea48e", "kind": "transparent" }, { - "address": "0x5FeaeBfB4439F3516c74939A9D04e95AFE82C4ae", - "txHash": "0x13961c446a2b82e6678fec6c600b33c4e9459a64b222e6431e610c960924c916", + "address": "0xe3EF345391654121f385679613Cea79A692C2Dd8", + "txHash": "0x18ea4b71df31f6eaaa561685e568ca054475c37bb098166574ae7bb9a5543005", "kind": "transparent" }, { - "address": "0x976fcd02f7C4773dd89C309fBF55D5923B4c98a1", - "txHash": "0x706a9714453b986e428be4af3c66867ba05429d80552a7a039ed504dbc140bf8", + "address": "0x6D39d71fF4ab56a4873febd34e1a3BDefc01b41e", + "txHash": "0xc7b0fe6ab471c16c7770544583c12a6b87c80db50b395cae768775fad1703546", "kind": "transparent" }, { - "address": "0x70bDA08DBe07363968e9EE53d899dFE48560605B", - "txHash": "0xd67bbc025439d2a53f72a582b370249308756fb98f21d561bbff9e522dddcd12", + "address": "0xeF66010868Ff77119171628B7eFa0F6179779375", + "txHash": "0x235ce5c90453e10ed2457eddbdbd91fab3ccc302af81633256eef9988b807bd9", "kind": "transparent" }, { - "address": "0x26B862f640357268Bd2d9E95bc81553a2Aa81D7E", - "txHash": "0x2f1558d3e8407915c820cb4eeef905eeb14d454aa886a906b6a7080c001c6962", + "address": "0x103416cfCD0D0a32b904Ab4fb69dF6E5B5aaDf2b", + "txHash": "0x7fc754bc79957d0d299ca0082867850868126189a583d4732d2114d263d393e9", "kind": "transparent" }, { - "address": "0xd9140951d8aE6E5F625a02F5908535e16e3af964", - "txHash": "0x5f8c05d7d9c3b585b47e9f026a9a6519a2a34f9141de77b73c39821e8d87eb78", + "address": "0xACB5b53F9F193b99bcd8EF8544ddF4c398DE24a3", + "txHash": "0xb54eec53a2129d2b3850f4714757e0302bafd1177799c40f19893269b95792c1", "kind": "transparent" }, { - "address": "0x56D13Eb21a625EdA8438F55DF2C31dC3632034f5", - "txHash": "0x423941cc1b87926138b8275d7c89a64fbafda5e59f059951a089e5d21e676081", + "address": "0x6C3F7ed79b9D75486D0250946f7a20BDA74844Ba", + "txHash": "0x909be7e134f9ea23cbc29a136745c01eb8347a9942fdf8f4e0920807b0e7dcf8", "kind": "transparent" }, { - "address": "0x8B190573374637f144AC8D37375d97fd84cBD3a0", - "txHash": "0x689201b4ba60668036a424b7f571aff66c166cdf58c08dd04bbdc2bdbae68f59", + "address": "0x43c5DF0c482c88Cef8005389F64c362eE720A5bC", + "txHash": "0xd2693bd5a0c259e1ec4814227b52040e00e5247b22ba509e6ce4216c4ddecaf0", "kind": "transparent" }, { - "address": "0x9385556B571ab92bf6dC9a0DbD75429Dd4d56F91", - "txHash": "0x07090c916e76bcf7b4d764fac8735f54e00383dbefc1954edad72c1a6a6ee517", + "address": "0xF01f4567586c3A707EBEC87651320b2dd9F4A287", + "txHash": "0x4424569baadb3a3417af1525f70feed18f96f802c9a6548e355991a7a322cbb1", "kind": "transparent" }, { - "address": "0x01E21d7B8c39dc4C764c19b308Bd8b14B1ba139E", - "txHash": "0xdde786a98aee7fbfad14feee9b2e752bb68ac964f397027d941006958c4569e3", + "address": "0xCaC60200c1Cb424f2C1e438c7Ee1B98d487f0254", + "txHash": "0x4ef8f40f4ffb1b17ba189cb49b7fa1199991280309ef7b88d1aaeb4ee445dff6", "kind": "transparent" }, { - "address": "0x3C1Cb427D20F15563aDa8C249E71db76d7183B6c", - "txHash": "0xdaa1e08b0d7bdeb9e1cb180ff4dab45ae99d000d8d9ca9046c3b457e9210eb14", + "address": "0xFf8FA9381caf61cB3368a6ec0b3F5C788028D0Cd", + "txHash": "0x0ddde961746e0980703c1c15b1fd911b46f770ecd376fb54727fbb7efb5e05a4", "kind": "transparent" }, { - "address": "0x8ac87219a0F5639BC01b470F87BA2b26356CB2B9", - "txHash": "0x23902369dae651ad305096afc784ac18b2ce11fd2081d79b565f5b9c3db88e92", + "address": "0x69eB226983E10D7318816134cd44BE3023dC74cd", + "txHash": "0x14a53f3e966dc1d12c898803c1525c5feb0e589af30d3f2d6786707faf9bd76a", "kind": "transparent" }, { - "address": "0x94fFA1C7330845646CE9128450F8e6c3B5e44F86", - "txHash": "0xe0a1c37bdec1121186af1f1acda016ae7b8a6edef744c92b239b4885d8c052fe", + "address": "0xD8fE7c45330c8b12cA0D4728D75557b9e7BeB24F", + "txHash": "0xe251d8618c06cc376953a5a09435acd776dca105910fcd654079b8b48b310716", "kind": "transparent" }, { - "address": "0xa4E00CB342B36eC9fDc4B50b3d527c3643D4C49e", - "txHash": "0x94e6ffa10036b636d7aedd48d8a180aba3b5bea6fe8dc81150b1aba955217b02", + "address": "0x3Aa338c8d5E6cefE95831cD0322b558677abA0f1", + "txHash": "0xfd183e40482bbc74e17650c22609f079af001225e76e82e8b74063f1e52885da", "kind": "transparent" }, { - "address": "0x8ac5eE52F70AE01dB914bE459D8B3d50126fd6aE", - "txHash": "0xb9f8449d88fc777438feaadfe5b2c2315170d0777b43ccd7703b0f555361f343", + "address": "0x267fB71b280FB34B278CedE84180a9A9037C941b", + "txHash": "0x501ae8bf30ea1dbd2551f986ba1737efdf0f9d6ea5d63e996d0307284edc6ed7", "kind": "transparent" }, { - "address": "0x24d41dbc3d60d0784f8a937c59FBDe51440D5140", - "txHash": "0x598c837fc270e9d07fd948235a72a73cd016a3d1feca3406b4beb3035120976b", + "address": "0x9015957A2210BB8B10e27d8BBEEF8d9498f123eF", + "txHash": "0xf4a10b2329504d575d1e1548a5681ee17f8c37b30ffdf5eb1a6475d14ee4c2a1", "kind": "transparent" }, { - "address": "0xC976c932092ECcD8f328FfD85066C0c05ED54044", - "txHash": "0x3aba7253b48f035302ee6d53e57b0c658e7677cc62a43c8930c4a75db0379986", + "address": "0x9C6c49E1a5108eC5A2111c0b9B62624100d11e3a", + "txHash": "0xb118fa3de76c12a964e17c5e38dc0fcfc1942cc78e0ed7aa627f484c993d89b3", "kind": "transparent" }, { - "address": "0x3a622DB2db50f463dF562Dc5F341545A64C580fc", - "txHash": "0xa7c7e1f11b18d65aae6dc90831759ba07bf522d7c900346ccd917e1dbd5f53f8", + "address": "0x95D7fF1684a8F2e202097F28Dc2e56F773A55D02", + "txHash": "0x87ccb08dd43f3def1c9f385f7b64a36ca83bcb4969c201c9550a44b6cbeceb8d", "kind": "transparent" }, { - "address": "0x6A47346e722937B60Df7a1149168c0E76DD6520f", - "txHash": "0x49f9109030545eb90ec46bce08e6b11a3dbce580b636d5f1fa8e41affae2ff76", + "address": "0x633a7eB9b8912b22f3616013F3153de687F96074", + "txHash": "0xbb92e43912bd42b9616925357dd46e32cc0715d92aeb41ef9dbd5c4b0d4404e0", "kind": "transparent" }, { - "address": "0x15Ff10fCc8A1a50bFbE07847A22664801eA79E0f", - "txHash": "0x29943c6bd0dbaa02132245beb8bb0b9c5deee553aa53623c71ac65707473084c", + "address": "0x1E53bea57Dd5dDa7bFf1a1180a2f64a5c9e222f5", + "txHash": "0x0bf88e78fa04862975f297c2edd065678b54ae776b83057577ea16f7feb11fd7", "kind": "transparent" }, { - "address": "0xAe9Ed85dE2670e3112590a2BB17b7283ddF44d9c", - "txHash": "0x3a682ec1e171d428ecb8272b08194892aaf0b9e958b457b11714164fcf7c2598", + "address": "0x17f4B55A352Be71CC03856765Ad04147119Aa09B", + "txHash": "0x91635e68bc304d8dfb994d4511f202b4fd9399d9a58e789baf1a8ca0be8dc2c1", "kind": "transparent" }, { - "address": "0xd977422c9eE9B646f64A4C4389a6C98ad356d8C4", - "txHash": "0x086d1c32b98f3fd83a08dd24037275dbd37bd0afd347dcdb382897059477040e", + "address": "0x08677Af0A7F54fE2a190bb1F75DE682fe596317e", + "txHash": "0xcc540ff89746020600d32eff1da6a61f63fc0fc64967820a2c3a2ad1b9a2d573", "kind": "transparent" }, { - "address": "0x1eB5C49630E08e95Ba7f139BcF4B9BA171C9a8C7", - "txHash": "0x3445c4b902bf599f0568066d7951d06b42bb03f021f5d17f1261ab1f752dd40e", + "address": "0x87a2688d6E41b23d802F74c6B1F06a8e8d118929", + "txHash": "0xde6e7a071b053e31c6a1e3c778cd23113aee167280edee97bc65f51ffb5b9765", "kind": "transparent" }, { - "address": "0xB1c05b498Cb58568B2470369FEB98B00702063dA", - "txHash": "0x4b7097468f2a9a35b7ada76b49b606b5feb40909e9daa065c0528f803bbe7ff5", + "address": "0x8797847c9d63D8Ed9C30B058F408d4257A33B76C", + "txHash": "0xaad0a04762380782e7d2435cb6465d12e915e61ccb92715934e9035848a6944e", "kind": "transparent" }, { - "address": "0x92A00fc48Ad3dD4A8b5266a8F467a52Ac784fC83", - "txHash": "0xac36b4d1390fee33e88f0fc6a4dfa402fae500a64c2429c01bd0df32624e711a", + "address": "0xF816b7FfDa4a8aB6B68540D1993fCa98E462b3bc", + "txHash": "0xa501fe5542d39dfd5f590f042b914a014988158ea391b66aa2068ef27ff32f19", "kind": "transparent" }, { - "address": "0x021DBfF4A864Aa25c51F0ad2Cd73266Fde66199d", - "txHash": "0x610686d85b1b1ad15de8e8f9c1809cbed7a98724b647bad90ae3bceb6969530f", + "address": "0xDB259fa7d7f9F68aE3ffC3c748516ba9567a7576", + "txHash": "0xc05d786a57888039ce4a8b6ae7dd2c11cc7bcbc37fab2348ab592ccfdced35a9", "kind": "transparent" }, { - "address": "0x4CF4dd3f71B67a7622ac250f8b10d266Dc5aEbcE", - "txHash": "0xefd534e821a6ebc1908018cf5eaa2f1d346325106439b7fa4605555949b084eb", + "address": "0x71d75C9A9e1a4fFa5a16556b51D6e630A4FA902A", + "txHash": "0xb1a4553030465f11524886ab3d87d64c444ad569d61cf5ad6bdb54bfdc5d3207", "kind": "transparent" }, { - "address": "0x26291175Fa0Ea3C8583fEdEB56805eA68289b105", - "txHash": "0xb6a2f7f5e52810184b12b65d131e06843cadfd96897566a57cafbcf81c531e5a", + "address": "0x701dC26AcaD119E892695bb6A06956e2165C2052", + "txHash": "0x5bc2dd3d1f7e85e268aa5b979b30cb4a31252bb085eed282b04ab28f01d29f9a", "kind": "transparent" }, { - "address": "0x840748F7Fd3EA956E5f4c88001da5CC1ABCBc038", - "txHash": "0x9caaae2c9ddd30e9c1937947196592dd8b4b6659c16aa4b4efba4324905aae21", + "address": "0xbaee9B65349929Bd78f9878555bF78027Df7f101", + "txHash": "0x7f5f41aef1f79aecfb8a1bf9dbbb898398610154745a15f93ba6b5bff2168e39", "kind": "transparent" }, { - "address": "0xa8d297D643a11cE83b432e87eEBce6bee0fd2bAb", - "txHash": "0x8e711d450c36c3ab11f9916cf2234ced3d91ef23d9ab3a8927f18ccc23449408", + "address": "0x886a2A3ABF5B79AA5dFF1C73016BD07CFc817e04", + "txHash": "0xe10b4371962b280d9d8ae1ad9b1c460ace1305967b4d0eaf8b7003016e8bb9db", "kind": "transparent" }, { - "address": "0x6Da3D07a6BF01F02fB41c02984a49B5d9Aa6ea92", - "txHash": "0xa4b3cdb40330944c4a13251227b73fac4e225e12ea6c0ce4967a501b4a4e505d", + "address": "0x449C286Ab90639fd9F6604F4f15Ec86bce2b8A61", + "txHash": "0xc359e21505ceeef6d8d34524fbc441b76753f555ad688b94a89aa299db0a602e", "kind": "transparent" }, { - "address": "0x3AeEBbEe7CE00B11cB202d6D0F38D696A3f4Ff8e", - "txHash": "0xea0f80acac00fcc17d12bf43effeae740f63e13f8cceb599efcb6083e8bfc7d4", + "address": "0x5aA185fbEFc205072FaecC6B9D564383e761f8C2", + "txHash": "0xdfdf10a3a3e25f1edbc76017fe814c59243e0a725aad5d213c7c1a729faf5c27", "kind": "transparent" }, { - "address": "0xB2ff9d5e60d68A52cea3cd041b32f1390A880365", - "txHash": "0x8a4c0fe07fd764a3d14be2be3862d46ce7cc146a3231c766a1433da9ccad8c1c", + "address": "0x63275D081C4A77AE69f76c4952F9747a5559a519", + "txHash": "0x90b6cdd247a950e8b9b55d667854240a2be53974054a906355991cbdb184ccc3", "kind": "transparent" }, { - "address": "0x889D9A5AF83525a2275e41464FAECcCb3337fF60", - "txHash": "0x5833ce18b2c83e750fc8a1d5f0c1e4efdda10c6ad43b24276845514368a6c4ff", + "address": "0x67832b9Fc47eb3CdBF7275b95a29740EC58193D2", + "txHash": "0x760c7911c1e2371d5e508867013a677e7dc87af56094f73697fe4441e52afa31", "kind": "transparent" }, { - "address": "0xf274De14171Ab928A5Ec19928cE35FaD91a42B64", - "txHash": "0xa134758e3746def8ae94cad0db95774d92232c9dbf4c13fa72f3ded0d23601e3", + "address": "0x832092FDF1D32A3A1b196270590fB0E25DF129FF", + "txHash": "0x9c06703c107505a17cc4dab86db19d8ad1409224fc7a77e1ea63be946c48e66a", "kind": "transparent" }, { - "address": "0x519b05b3655F4b89731B677d64CEcf761f4076f6", - "txHash": "0xeacf574610b07d6bca2ae2af7aa412ce6dd4c2ad3ddedfd2d8e60fe717a9f84f", + "address": "0x8729c0238b265BaCF6fE397E8309897BB5c40473", + "txHash": "0xca18daf3344bd254c03018c4c88c68510d4df626bc767ab766105ec90adf1fdf", "kind": "transparent" }, { - "address": "0x057cD3082EfED32d5C907801BF3628B27D88fD80", - "txHash": "0x5fce92538b763f713c2436b720f80ba2384e0e26f60db4f68e6382e7e0e5bdad", + "address": "0xDf795df2e0ad240a82d773DA01a812B96345F9C5", + "txHash": "0x43aca645e2389aeca7291fdcf1e920d6ce7023a0634a39cadf1c8879f93e7959", "kind": "transparent" }, { - "address": "0xCA87833e830652C2ab07E1e03eBa4F2c246D3b58", - "txHash": "0xea282d0df28916b15589687ca56c1ed0aa18f888b85fdf115247ab58820b4ad9", + "address": "0xDb731EaaFA0FFA7854A24C2379585a85D768Ed5C", + "txHash": "0xbf8f6e87264d16af441499df65dd3ac6626f3b33c71f5efe3854475232dfdd1f", "kind": "transparent" }, { - "address": "0x9Bb65b12162a51413272d10399282E730822Df44", - "txHash": "0x1e36a60e959745079294d75e4f8e7cbf3702b891160f900ca780016eeb3b77f7", + "address": "0x335796f7A0F72368D1588839e38f163d90C92C80", + "txHash": "0x695de7eca08cd0ec9367f0d228296e7d14bb9fafd2b1e95c9165dc079e7feb76", "kind": "transparent" }, { - "address": "0xeA8AE08513f8230cAA8d031D28cB4Ac8CE720c68", - "txHash": "0x895196478e2a23cf9b9da10b3261e7d3695cec700eb31b421fe97b8722b38bd7", + "address": "0xC63db9682Ff11707CADbD72bf1A0354a7feF143B", + "txHash": "0x88eedea406ef4a987ce3a0230633620c7b9e4cb35807369dfe07acb8bc9202f6", "kind": "transparent" }, { - "address": "0x6431AF84d34F0522cAA58b221d94A150B5AdAC69", - "txHash": "0x941e7ec40c8e79640cbc951d860906ea1e23848b51c63aee30fc90d6cfd3c67f", + "address": "0xF8b1d4d0A2Dd9Dd53200A4C6783a69c15E3a25F4", + "txHash": "0xcb16d63658b653c346934a4583ef6ef09a013683e77f958edefb25a3ac92be99", "kind": "transparent" } ], @@ -4034,8 +4034,8 @@ } }, "12ebbaa45d78637d59ee2caefa0726423bd7f0f62280acd55c4eea365e160ab1": { - "address": "0x457cCf29090fe5A24c19c1bc95F492168C0EaFdb", - "txHash": "0x841c4b448fa298fb75b276d2bcae2412b332216e51bd3a3030cfedb978ca0143", + "address": "0x725314746e727f586E9FCA65AeD5dBe45aA71B99", + "txHash": "0xc172768cb250e8b85e5cee06eb17a62eaf0224d54e0df08c0cefd3d8ca0b7de2", "layout": { "storage": [ { @@ -4225,8 +4225,8 @@ } }, "b757b4f477459223715fef241dd92473e52a1efef72fe4ebb4feb829cf9bfb88": { - "address": "0x8A93d247134d91e0de6f96547cB0204e5BE8e5D8", - "txHash": "0x9cd5d3908b72209fde9edc1412bb177af39b6190281b183d802929c7a4dc039c", + "address": "0xe24e7570Fe7207AdAaAa8c6c89a59850391B5276", + "txHash": "0x7ba9209fe8a06ce534276d9184a0a023b8dc78ac4dfaae882a2d9af2657232e2", "layout": { "storage": [ { @@ -4650,8 +4650,8 @@ } }, "2b862cc284752b12e95bc814afc1bfaaf793da4dc895ef72c1fcb2fe7ae0cb6d": { - "address": "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9", - "txHash": "0x5e60568157903577cbe11f4c5fa7b8cfbe314538689cb823e44956f0e3a07a07", + "address": "0xA51c1fc2f0D1a1b8494Ed1FE312d7C3a78Ed91C0", + "txHash": "0x8ea042d4adb2fdf95ba20252926c9974c51982bc45e641c2c86602c7b22cfde3", "layout": { "storage": [ { @@ -4978,6 +4978,241 @@ } } } + }, + "8564a9bc3d42b1604cd9ed8bfef0ddc8cc8b2ee693b88d00c9eb61147d10b2d6": { + "address": "0x0B306BF915C4d645ff596e518fAf3F9669b97016", + "txHash": "0xea893638f5007e3e958e6cd2f7567f1724c4ff2f3b1146e25c44170a01207bb3", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "_status", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:38" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)49_storage", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:74" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_owner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "courseData", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(Course)5371_storage)", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:17" + }, + { + "label": "learnerData", + "offset": 0, + "slot": "152", + "type": "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)5381_storage))", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(Learner)5381_storage)": { + "label": "mapping(address => struct Learner)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)5381_storage))": { + "label": "mapping(bytes32 => mapping(address => struct Learner))", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Course)5371_storage)": { + "label": "mapping(bytes32 => struct Course)", + "numberOfBytes": "32" + }, + "t_struct(Course)5371_storage": { + "label": "struct Course", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "rewardAddress", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "budget", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "budgetAvailable", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "bonus", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "totalLearnersClaimedBonus", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "timeCreated", + "type": "t_uint256", + "offset": 0, + "slot": "6" + }, + { + "label": "timeEndBonus", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "timeRemoved", + "type": "t_uint256", + "offset": 0, + "slot": "8" + }, + { + "label": "isBonusToken", + "type": "t_bool", + "offset": 0, + "slot": "9" + }, + { + "label": "canMintNFT", + "type": "t_bool", + "offset": 1, + "slot": "9" + }, + { + "label": "isUsingDuration", + "type": "t_bool", + "offset": 2, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(Learner)5381_storage": { + "label": "struct Learner", + "members": [ + { + "label": "timeStarted", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "timeCompleted", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "timeRewarded", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "nftIds", + "type": "t_array(t_uint256)dyn_storage", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } } } } diff --git a/.openzeppelin/unknown-421613.json b/.openzeppelin/unknown-421613.json index 79b5222..cfa60d9 100644 --- a/.openzeppelin/unknown-421613.json +++ b/.openzeppelin/unknown-421613.json @@ -816,6 +816,241 @@ } } } + }, + "8564a9bc3d42b1604cd9ed8bfef0ddc8cc8b2ee693b88d00c9eb61147d10b2d6": { + "address": "0x3D7B83Cf8042139Ec54b6B6F5789D2046a8E4bE4", + "txHash": "0x3a3a0979b0680a48a5254afd1c73a81fb6385002085bdd547a18f604bb7d8130", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "_status", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:38" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)49_storage", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:74" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_owner", + "offset": 0, + "slot": "101", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "courseData", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(Course)3448_storage)", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:17" + }, + { + "label": "learnerData", + "offset": 0, + "slot": "152", + "type": "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)3458_storage))", + "contract": "LearnToEarn", + "src": "contracts/LearnToEarn.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(Learner)3458_storage)": { + "label": "mapping(address => struct Learner)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Learner)3458_storage))": { + "label": "mapping(bytes32 => mapping(address => struct Learner))", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(Course)3448_storage)": { + "label": "mapping(bytes32 => struct Course)", + "numberOfBytes": "32" + }, + "t_struct(Course)3448_storage": { + "label": "struct Course", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "rewardAddress", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "budget", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "budgetAvailable", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "bonus", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "totalLearnersClaimedBonus", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "timeCreated", + "type": "t_uint256", + "offset": 0, + "slot": "6" + }, + { + "label": "timeEndBonus", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "timeRemoved", + "type": "t_uint256", + "offset": 0, + "slot": "8" + }, + { + "label": "isBonusToken", + "type": "t_bool", + "offset": 0, + "slot": "9" + }, + { + "label": "canMintNFT", + "type": "t_bool", + "offset": 1, + "slot": "9" + }, + { + "label": "isUsingDuration", + "type": "t_bool", + "offset": 2, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(Learner)3458_storage": { + "label": "struct Learner", + "members": [ + { + "label": "timeStarted", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "timeCompleted", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "timeRewarded", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "nftIds", + "type": "t_array(t_uint256)dyn_storage", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } } } } diff --git a/crytic-export/combined_solc.json b/crytic-export/combined_solc.json new file mode 100644 index 0000000..9ca422c --- /dev/null +++ b/crytic-export/combined_solc.json @@ -0,0 +1 @@ +{"sources": {"/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "exportedSymbols": {"AddressUpgradeable": [2177], "ContextUpgradeable": [2219], "Initializable": [282], "OwnableUpgradeable": [131]}, "id": 132, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 1, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "102:23:0"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../utils/ContextUpgradeable.sol", "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 132, "sourceUnit": 2220, "src": "127:41:0", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", "id": 3, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 132, "sourceUnit": 283, "src": "169:42:0", "symbolAliases": [], "unitAlias": ""}, {"abstract": true, "baseContracts": [{"baseName": {"id": 5, "name": "Initializable", "nameLocations": ["748:13:0"], "nodeType": "IdentifierPath", "referencedDeclaration": 282, "src": "748:13:0"}, "id": 6, "nodeType": "InheritanceSpecifier", "src": "748:13:0"}, {"baseName": {"id": 7, "name": "ContextUpgradeable", "nameLocations": ["763:18:0"], "nodeType": "IdentifierPath", "referencedDeclaration": 2219, "src": "763:18:0"}, "id": 8, "nodeType": "InheritanceSpecifier", "src": "763:18:0"}], "canonicalName": "OwnableUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 4, "nodeType": "StructuredDocumentation", "src": "213:494:0", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."}, "fullyImplemented": true, "id": 131, "linearizedBaseContracts": [131, 2219, 282], "name": "OwnableUpgradeable", "nameLocation": "726:18:0", "nodeType": "ContractDefinition", "nodes": [{"constant": false, "id": 10, "mutability": "mutable", "name": "_owner", "nameLocation": "804:6:0", "nodeType": "VariableDeclaration", "scope": 131, "src": "788:22:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 9, "name": "address", "nodeType": "ElementaryTypeName", "src": "788:7:0", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "private"}, {"anonymous": false, "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "id": 16, "name": "OwnershipTransferred", "nameLocation": "823:20:0", "nodeType": "EventDefinition", "parameters": {"id": 15, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "860:13:0", "nodeType": "VariableDeclaration", "scope": 16, "src": "844:29:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11, "name": "address", "nodeType": "ElementaryTypeName", "src": "844:7:0", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "891:8:0", "nodeType": "VariableDeclaration", "scope": 16, "src": "875:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13, "name": "address", "nodeType": "ElementaryTypeName", "src": "875:7:0", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "843:57:0"}, "src": "817:84:0"}, {"body": {"id": 25, "nodeType": "Block", "src": "1055:43:0", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "id": 22, "name": "__Ownable_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, "src": "1065:24:0", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()"}}, "id": 23, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1065:26:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 24, "nodeType": "ExpressionStatement", "src": "1065:26:0"}]}, "documentation": {"id": 17, "nodeType": "StructuredDocumentation", "src": "907:91:0", "text": " @dev Initializes the contract setting the deployer as the initial owner."}, "id": 26, "implemented": true, "kind": "function", "modifiers": [{"id": 20, "kind": "modifierInvocation", "modifierName": {"id": 19, "name": "onlyInitializing", "nameLocations": ["1038:16:0"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "1038:16:0"}, "nodeType": "ModifierInvocation", "src": "1038:16:0"}], "name": "__Ownable_init", "nameLocation": "1012:14:0", "nodeType": "FunctionDefinition", "parameters": {"id": 18, "nodeType": "ParameterList", "parameters": [], "src": "1026:2:0"}, "returnParameters": {"id": 21, "nodeType": "ParameterList", "parameters": [], "src": "1055:0:0"}, "scope": 131, "src": "1003:95:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 36, "nodeType": "Block", "src": "1166:49:0", "statements": [{"expression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 32, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "1195:10:0", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 33, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1195:12:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 31, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 125, "src": "1176:18:0", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)"}}, "id": 34, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1176:32:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 35, "nodeType": "ExpressionStatement", "src": "1176:32:0"}]}, "id": 37, "implemented": true, "kind": "function", "modifiers": [{"id": 29, "kind": "modifierInvocation", "modifierName": {"id": 28, "name": "onlyInitializing", "nameLocations": ["1149:16:0"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "1149:16:0"}, "nodeType": "ModifierInvocation", "src": "1149:16:0"}], "name": "__Ownable_init_unchained", "nameLocation": "1113:24:0", "nodeType": "FunctionDefinition", "parameters": {"id": 27, "nodeType": "ParameterList", "parameters": [], "src": "1137:2:0"}, "returnParameters": {"id": 30, "nodeType": "ParameterList", "parameters": [], "src": "1166:0:0"}, "scope": 131, "src": "1104:111:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 44, "nodeType": "Block", "src": "1324:41:0", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "id": 40, "name": "_checkOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, "src": "1334:11:0", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view"}}, "id": 41, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1334:13:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 42, "nodeType": "ExpressionStatement", "src": "1334:13:0"}, {"id": 43, "nodeType": "PlaceholderStatement", "src": "1357:1:0"}]}, "documentation": {"id": 38, "nodeType": "StructuredDocumentation", "src": "1221:77:0", "text": " @dev Throws if called by any account other than the owner."}, "id": 45, "name": "onlyOwner", "nameLocation": "1312:9:0", "nodeType": "ModifierDefinition", "parameters": {"id": 39, "nodeType": "ParameterList", "parameters": [], "src": "1321:2:0"}, "src": "1303:62:0", "virtual": false, "visibility": "internal"}, {"body": {"id": 53, "nodeType": "Block", "src": "1496:30:0", "statements": [{"expression": {"id": 51, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "1513:6:0", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 50, "id": 52, "nodeType": "Return", "src": "1506:13:0"}]}, "documentation": {"id": 46, "nodeType": "StructuredDocumentation", "src": "1371:65:0", "text": " @dev Returns the address of the current owner."}, "functionSelector": "8da5cb5b", "id": 54, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", "nameLocation": "1450:5:0", "nodeType": "FunctionDefinition", "parameters": {"id": 47, "nodeType": "ParameterList", "parameters": [], "src": "1455:2:0"}, "returnParameters": {"id": 50, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 49, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 54, "src": "1487:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 48, "name": "address", "nodeType": "ElementaryTypeName", "src": "1487:7:0", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1486:9:0"}, "scope": 131, "src": "1441:85:0", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"body": {"id": 67, "nodeType": "Block", "src": "1644:85:0", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 63, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 59, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 54, "src": "1662:5:0", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 60, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1662:7:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 61, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "1673:10:0", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 62, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1673:12:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1662:23:0", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", "id": 64, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1687:34:0", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\""}, "value": "Ownable: caller is not the owner"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\""}], "id": 58, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1654:7:0", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 65, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1654:68:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 66, "nodeType": "ExpressionStatement", "src": "1654:68:0"}]}, "documentation": {"id": 55, "nodeType": "StructuredDocumentation", "src": "1532:62:0", "text": " @dev Throws if the sender is not the owner."}, "id": 68, "implemented": true, "kind": "function", "modifiers": [], "name": "_checkOwner", "nameLocation": "1608:11:0", "nodeType": "FunctionDefinition", "parameters": {"id": 56, "nodeType": "ParameterList", "parameters": [], "src": "1619:2:0"}, "returnParameters": {"id": 57, "nodeType": "ParameterList", "parameters": [], "src": "1644:0:0"}, "scope": 131, "src": "1599:130:0", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 81, "nodeType": "Block", "src": "2125:47:0", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 77, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2162:1:0", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 76, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2154:7:0", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 75, "name": "address", "nodeType": "ElementaryTypeName", "src": "2154:7:0", "typeDescriptions": {}}}, "id": 78, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2154:10:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 74, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 125, "src": "2135:18:0", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)"}}, "id": 79, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2135:30:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 80, "nodeType": "ExpressionStatement", "src": "2135:30:0"}]}, "documentation": {"id": 69, "nodeType": "StructuredDocumentation", "src": "1735:331:0", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."}, "functionSelector": "715018a6", "id": 82, "implemented": true, "kind": "function", "modifiers": [{"id": 72, "kind": "modifierInvocation", "modifierName": {"id": 71, "name": "onlyOwner", "nameLocations": ["2115:9:0"], "nodeType": "IdentifierPath", "referencedDeclaration": 45, "src": "2115:9:0"}, "nodeType": "ModifierInvocation", "src": "2115:9:0"}], "name": "renounceOwnership", "nameLocation": "2080:17:0", "nodeType": "FunctionDefinition", "parameters": {"id": 70, "nodeType": "ParameterList", "parameters": [], "src": "2097:2:0"}, "returnParameters": {"id": 73, "nodeType": "ParameterList", "parameters": [], "src": "2125:0:0"}, "scope": 131, "src": "2071:101:0", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"body": {"id": 104, "nodeType": "Block", "src": "2391:128:0", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 96, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 91, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "2409:8:0", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 94, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2429:1:0", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 93, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2421:7:0", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 92, "name": "address", "nodeType": "ElementaryTypeName", "src": "2421:7:0", "typeDescriptions": {}}}, "id": 95, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2421:10:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2409:22:0", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", "id": 97, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2433:40:0", "typeDescriptions": {"typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\""}, "value": "Ownable: new owner is the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\""}], "id": 90, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2401:7:0", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 98, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2401:73:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 99, "nodeType": "ExpressionStatement", "src": "2401:73:0"}, {"expression": {"arguments": [{"id": 101, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, "src": "2503:8:0", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 100, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 125, "src": "2484:18:0", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)"}}, "id": 102, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2484:28:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 103, "nodeType": "ExpressionStatement", "src": "2484:28:0"}]}, "documentation": {"id": 83, "nodeType": "StructuredDocumentation", "src": "2178:138:0", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."}, "functionSelector": "f2fde38b", "id": 105, "implemented": true, "kind": "function", "modifiers": [{"id": 88, "kind": "modifierInvocation", "modifierName": {"id": 87, "name": "onlyOwner", "nameLocations": ["2381:9:0"], "nodeType": "IdentifierPath", "referencedDeclaration": 45, "src": "2381:9:0"}, "nodeType": "ModifierInvocation", "src": "2381:9:0"}], "name": "transferOwnership", "nameLocation": "2330:17:0", "nodeType": "FunctionDefinition", "parameters": {"id": 86, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 85, "mutability": "mutable", "name": "newOwner", "nameLocation": "2356:8:0", "nodeType": "VariableDeclaration", "scope": 105, "src": "2348:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 84, "name": "address", "nodeType": "ElementaryTypeName", "src": "2348:7:0", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2347:18:0"}, "returnParameters": {"id": 89, "nodeType": "ParameterList", "parameters": [], "src": "2391:0:0"}, "scope": 131, "src": "2321:198:0", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"body": {"id": 124, "nodeType": "Block", "src": "2736:124:0", "statements": [{"assignments": [112], "declarations": [{"constant": false, "id": 112, "mutability": "mutable", "name": "oldOwner", "nameLocation": "2754:8:0", "nodeType": "VariableDeclaration", "scope": 124, "src": "2746:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 111, "name": "address", "nodeType": "ElementaryTypeName", "src": "2746:7:0", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 114, "initialValue": {"id": 113, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "2765:6:0", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "2746:25:0"}, {"expression": {"id": 117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 115, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "2781:6:0", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 116, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 108, "src": "2790:8:0", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2781:17:0", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 118, "nodeType": "ExpressionStatement", "src": "2781:17:0"}, {"eventCall": {"arguments": [{"id": 120, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 112, "src": "2834:8:0", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 121, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 108, "src": "2844:8:0", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 119, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16, "src": "2813:20:0", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)"}}, "id": 122, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2813:40:0", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 123, "nodeType": "EmitStatement", "src": "2808:45:0"}]}, "documentation": {"id": 106, "nodeType": "StructuredDocumentation", "src": "2525:143:0", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."}, "id": 125, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", "nameLocation": "2682:18:0", "nodeType": "FunctionDefinition", "parameters": {"id": 109, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 108, "mutability": "mutable", "name": "newOwner", "nameLocation": "2709:8:0", "nodeType": "VariableDeclaration", "scope": 125, "src": "2701:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 107, "name": "address", "nodeType": "ElementaryTypeName", "src": "2701:7:0", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2700:18:0"}, "returnParameters": {"id": 110, "nodeType": "ParameterList", "parameters": [], "src": "2736:0:0"}, "scope": 131, "src": "2673:187:0", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"constant": false, "documentation": {"id": 126, "nodeType": "StructuredDocumentation", "src": "2866:254:0", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}, "id": 130, "mutability": "mutable", "name": "__gap", "nameLocation": "3145:5:0", "nodeType": "VariableDeclaration", "scope": 131, "src": "3125:25:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$49_storage", "typeString": "uint256[49]"}, "typeName": {"baseType": {"id": 127, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3125:7:0", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 129, "length": {"hexValue": "3439", "id": 128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3133:2:0", "typeDescriptions": {"typeIdentifier": "t_rational_49_by_1", "typeString": "int_const 49"}, "value": "49"}, "nodeType": "ArrayTypeName", "src": "3125:11:0", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", "typeString": "uint256[49]"}}, "visibility": "private"}], "scope": 132, "src": "708:2445:0", "usedErrors": []}], "src": "102:3052:0"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "exportedSymbols": {"AddressUpgradeable": [2177], "Initializable": [282]}, "id": 283, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 133, "literals": ["solidity", "^", "0.8", ".2"], "nodeType": "PragmaDirective", "src": "113:23:1"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "file": "../../utils/AddressUpgradeable.sol", "id": 134, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 283, "sourceUnit": 2178, "src": "138:44:1", "symbolAliases": [], "unitAlias": ""}, {"abstract": true, "baseContracts": [], "canonicalName": "Initializable", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 135, "nodeType": "StructuredDocumentation", "src": "184:2198:1", "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="}, "fullyImplemented": true, "id": 282, "linearizedBaseContracts": [282], "name": "Initializable", "nameLocation": "2401:13:1", "nodeType": "ContractDefinition", "nodes": [{"constant": false, "documentation": {"id": 136, "nodeType": "StructuredDocumentation", "src": "2421:109:1", "text": " @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"}, "id": 138, "mutability": "mutable", "name": "_initialized", "nameLocation": "2549:12:1", "nodeType": "VariableDeclaration", "scope": 282, "src": "2535:26:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 137, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2535:5:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "visibility": "private"}, {"constant": false, "documentation": {"id": 139, "nodeType": "StructuredDocumentation", "src": "2568:91:1", "text": " @dev Indicates that the contract is in the process of being initialized."}, "id": 141, "mutability": "mutable", "name": "_initializing", "nameLocation": "2677:13:1", "nodeType": "VariableDeclaration", "scope": 282, "src": "2664:26:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 140, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2664:4:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "private"}, {"anonymous": false, "documentation": {"id": 142, "nodeType": "StructuredDocumentation", "src": "2697:90:1", "text": " @dev Triggered when the contract has been initialized or reinitialized."}, "eventSelector": "7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498", "id": 146, "name": "Initialized", "nameLocation": "2798:11:1", "nodeType": "EventDefinition", "parameters": {"id": 145, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 144, "indexed": false, "mutability": "mutable", "name": "version", "nameLocation": "2816:7:1", "nodeType": "VariableDeclaration", "scope": 146, "src": "2810:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 143, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "2810:5:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "visibility": "internal"}], "src": "2809:15:1"}, "src": "2792:33:1"}, {"body": {"id": 201, "nodeType": "Block", "src": "3101:483:1", "statements": [{"assignments": [150], "declarations": [{"constant": false, "id": 150, "mutability": "mutable", "name": "isTopLevelCall", "nameLocation": "3116:14:1", "nodeType": "VariableDeclaration", "scope": 201, "src": "3111:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 149, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3111:4:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "id": 153, "initialValue": {"id": 152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3133:14:1", "subExpression": {"id": 151, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 141, "src": "3134:13:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "VariableDeclarationStatement", "src": "3111:36:1"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"components": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 159, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 155, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 150, "src": "3179:14:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "id": 158, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 156, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 138, "src": "3197:12:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"hexValue": "31", "id": 157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3212:1:1", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "3197:16:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "3179:34:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 160, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3178:36:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"components": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3219:45:1", "subExpression": {"arguments": [{"arguments": [{"id": 165, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "3258:4:1", "typeDescriptions": {"typeIdentifier": "t_contract$_Initializable_$282", "typeString": "contract Initializable"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_Initializable_$282", "typeString": "contract Initializable"}], "id": 164, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3250:7:1", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 163, "name": "address", "nodeType": "ElementaryTypeName", "src": "3250:7:1", "typeDescriptions": {}}}, "id": 166, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3250:13:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 161, "name": "AddressUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2177, "src": "3220:18:1", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$2177_$", "typeString": "type(library AddressUpgradeable)"}}, "id": 162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3239:10:1", "memberName": "isContract", "nodeType": "MemberAccess", "referencedDeclaration": 1952, "src": "3220:29:1", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)"}}, "id": 167, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3220:44:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "id": 171, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 169, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 138, "src": "3268:12:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "31", "id": 170, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3284:1:1", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "3268:17:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "3219:66:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 173, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3218:68:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "3178:108:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", "id": 175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3300:48:1", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\""}, "value": "Initializable: contract is already initialized"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\""}], "id": 154, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3157:7:1", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 176, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3157:201:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 177, "nodeType": "ExpressionStatement", "src": "3157:201:1"}, {"expression": {"id": 180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 178, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 138, "src": "3368:12:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "31", "id": 179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3383:1:1", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "3368:16:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "id": 181, "nodeType": "ExpressionStatement", "src": "3368:16:1"}, {"condition": {"id": 182, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 150, "src": "3398:14:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 188, "nodeType": "IfStatement", "src": "3394:65:1", "trueBody": {"id": 187, "nodeType": "Block", "src": "3414:45:1", "statements": [{"expression": {"id": 185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 183, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 141, "src": "3428:13:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "74727565", "id": 184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3444:4:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "src": "3428:20:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 186, "nodeType": "ExpressionStatement", "src": "3428:20:1"}]}}, {"id": 189, "nodeType": "PlaceholderStatement", "src": "3468:1:1"}, {"condition": {"id": 190, "name": "isTopLevelCall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 150, "src": "3483:14:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 200, "nodeType": "IfStatement", "src": "3479:99:1", "trueBody": {"id": 199, "nodeType": "Block", "src": "3499:79:1", "statements": [{"expression": {"id": 193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 191, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 141, "src": "3513:13:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "66616c7365", "id": 192, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3529:5:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "src": "3513:21:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 194, "nodeType": "ExpressionStatement", "src": "3513:21:1"}, {"eventCall": {"arguments": [{"hexValue": "31", "id": 196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3565:1:1", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}], "id": 195, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 146, "src": "3553:11:1", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)"}}, "id": 197, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3553:14:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 198, "nodeType": "EmitStatement", "src": "3548:19:1"}]}}]}, "documentation": {"id": 147, "nodeType": "StructuredDocumentation", "src": "2831:242:1", "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`."}, "id": 202, "name": "initializer", "nameLocation": "3087:11:1", "nodeType": "ModifierDefinition", "parameters": {"id": 148, "nodeType": "ParameterList", "parameters": [], "src": "3098:2:1"}, "src": "3078:506:1", "virtual": false, "visibility": "internal"}, {"body": {"id": 234, "nodeType": "Block", "src": "4399:255:1", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "4417:14:1", "subExpression": {"id": 208, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 141, "src": "4418:13:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "id": 212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 210, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 138, "src": "4435:12:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"id": 211, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "4450:7:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "src": "4435:22:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "4417:40:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", "id": 214, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4459:48:1", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\""}, "value": "Initializable: contract is already initialized"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", "typeString": "literal_string \"Initializable: contract is already initialized\""}], "id": 207, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "4409:7:1", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 215, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4409:99:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 216, "nodeType": "ExpressionStatement", "src": "4409:99:1"}, {"expression": {"id": 219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 217, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 138, "src": "4518:12:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 218, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "4533:7:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "src": "4518:22:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "id": 220, "nodeType": "ExpressionStatement", "src": "4518:22:1"}, {"expression": {"id": 223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 221, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 141, "src": "4550:13:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "74727565", "id": 222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4566:4:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "src": "4550:20:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 224, "nodeType": "ExpressionStatement", "src": "4550:20:1"}, {"id": 225, "nodeType": "PlaceholderStatement", "src": "4580:1:1"}, {"expression": {"id": 228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 226, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 141, "src": "4591:13:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "66616c7365", "id": 227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4607:5:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "src": "4591:21:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 229, "nodeType": "ExpressionStatement", "src": "4591:21:1"}, {"eventCall": {"arguments": [{"id": 231, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "4639:7:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint8", "typeString": "uint8"}], "id": 230, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 146, "src": "4627:11:1", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)"}}, "id": 232, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4627:20:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 233, "nodeType": "EmitStatement", "src": "4622:25:1"}]}, "documentation": {"id": 203, "nodeType": "StructuredDocumentation", "src": "3590:766:1", "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n initialization step. This is essential to configure modules that are added through upgrades and that require\n initialization.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator."}, "id": 235, "name": "reinitializer", "nameLocation": "4370:13:1", "nodeType": "ModifierDefinition", "parameters": {"id": 206, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 205, "mutability": "mutable", "name": "version", "nameLocation": "4390:7:1", "nodeType": "VariableDeclaration", "scope": 235, "src": "4384:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 204, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "4384:5:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "visibility": "internal"}], "src": "4383:15:1"}, "src": "4361:293:1", "virtual": false, "visibility": "internal"}, {"body": {"id": 244, "nodeType": "Block", "src": "4892:97:1", "statements": [{"expression": {"arguments": [{"id": 239, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 141, "src": "4910:13:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67", "id": 240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4925:45:1", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", "typeString": "literal_string \"Initializable: contract is not initializing\""}, "value": "Initializable: contract is not initializing"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", "typeString": "literal_string \"Initializable: contract is not initializing\""}], "id": 238, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "4902:7:1", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 241, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4902:69:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 242, "nodeType": "ExpressionStatement", "src": "4902:69:1"}, {"id": 243, "nodeType": "PlaceholderStatement", "src": "4981:1:1"}]}, "documentation": {"id": 236, "nodeType": "StructuredDocumentation", "src": "4660:199:1", "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."}, "id": 245, "name": "onlyInitializing", "nameLocation": "4873:16:1", "nodeType": "ModifierDefinition", "parameters": {"id": 237, "nodeType": "ParameterList", "parameters": [], "src": "4889:2:1"}, "src": "4864:125:1", "virtual": false, "visibility": "internal"}, {"body": {"id": 280, "nodeType": "Block", "src": "5437:230:1", "statements": [{"expression": {"arguments": [{"id": 251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "5455:14:1", "subExpression": {"id": 250, "name": "_initializing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 141, "src": "5456:13:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67", "id": 252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5471:41:1", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a", "typeString": "literal_string \"Initializable: contract is initializing\""}, "value": "Initializable: contract is initializing"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a", "typeString": "literal_string \"Initializable: contract is initializing\""}], "id": 249, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5447:7:1", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 253, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5447:66:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 254, "nodeType": "ExpressionStatement", "src": "5447:66:1"}, {"condition": {"commonType": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "id": 261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 255, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 138, "src": "5527:12:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"arguments": [{"id": 258, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5547:5:1", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)"}, "typeName": {"id": 257, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "5547:5:1", "typeDescriptions": {}}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)"}], "id": 256, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "5542:4:1", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5542:11:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_uint8", "typeString": "type(uint8)"}}, "id": 260, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5554:3:1", "memberName": "max", "nodeType": "MemberAccess", "src": "5542:15:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "src": "5527:30:1", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 279, "nodeType": "IfStatement", "src": "5523:138:1", "trueBody": {"id": 278, "nodeType": "Block", "src": "5559:102:1", "statements": [{"expression": {"id": 268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 262, "name": "_initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 138, "src": "5573:12:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"arguments": [{"id": 265, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5593:5:1", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)"}, "typeName": {"id": 264, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "5593:5:1", "typeDescriptions": {}}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)"}], "id": 263, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "5588:4:1", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5588:11:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_uint8", "typeString": "type(uint8)"}}, "id": 267, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5600:3:1", "memberName": "max", "nodeType": "MemberAccess", "src": "5588:15:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "src": "5573:30:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "id": 269, "nodeType": "ExpressionStatement", "src": "5573:30:1"}, {"eventCall": {"arguments": [{"expression": {"arguments": [{"id": 273, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5639:5:1", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)"}, "typeName": {"id": 272, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "5639:5:1", "typeDescriptions": {}}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)"}], "id": 271, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "5634:4:1", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5634:11:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_uint8", "typeString": "type(uint8)"}}, "id": 275, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5646:3:1", "memberName": "max", "nodeType": "MemberAccess", "src": "5634:15:1", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint8", "typeString": "uint8"}], "id": 270, "name": "Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 146, "src": "5622:11:1", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)"}}, "id": 276, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5622:28:1", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 277, "nodeType": "EmitStatement", "src": "5617:33:1"}]}}]}, "documentation": {"id": 246, "nodeType": "StructuredDocumentation", "src": "4995:388:1", "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies."}, "id": 281, "implemented": true, "kind": "function", "modifiers": [], "name": "_disableInitializers", "nameLocation": "5397:20:1", "nodeType": "FunctionDefinition", "parameters": {"id": 247, "nodeType": "ParameterList", "parameters": [], "src": "5417:2:1"}, "returnParameters": {"id": 248, "nodeType": "ParameterList", "parameters": [], "src": "5437:0:1"}, "scope": 282, "src": "5388:279:1", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}], "scope": 283, "src": "2383:3286:1", "usedErrors": []}], "src": "113:5557:1"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "exportedSymbols": {"AddressUpgradeable": [2177], "Initializable": [282], "ReentrancyGuardUpgradeable": [341]}, "id": 342, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 284, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "97:23:2"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", "id": 285, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 342, "sourceUnit": 283, "src": "121:42:2", "symbolAliases": [], "unitAlias": ""}, {"abstract": true, "baseContracts": [{"baseName": {"id": 287, "name": "Initializable", "nameLocations": ["964:13:2"], "nodeType": "IdentifierPath", "referencedDeclaration": 282, "src": "964:13:2"}, "id": 288, "nodeType": "InheritanceSpecifier", "src": "964:13:2"}], "canonicalName": "ReentrancyGuardUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 286, "nodeType": "StructuredDocumentation", "src": "165:750:2", "text": " @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."}, "fullyImplemented": true, "id": 341, "linearizedBaseContracts": [341, 282], "name": "ReentrancyGuardUpgradeable", "nameLocation": "934:26:2", "nodeType": "ContractDefinition", "nodes": [{"constant": true, "id": 291, "mutability": "constant", "name": "_NOT_ENTERED", "nameLocation": "1757:12:2", "nodeType": "VariableDeclaration", "scope": 341, "src": "1732:41:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 289, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1732:7:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "value": {"hexValue": "31", "id": 290, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1772:1:2", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "visibility": "private"}, {"constant": true, "id": 294, "mutability": "constant", "name": "_ENTERED", "nameLocation": "1804:8:2", "nodeType": "VariableDeclaration", "scope": 341, "src": "1779:37:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 292, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1779:7:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "value": {"hexValue": "32", "id": 293, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1815:1:2", "typeDescriptions": {"typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2"}, "value": "2"}, "visibility": "private"}, {"constant": false, "id": 296, "mutability": "mutable", "name": "_status", "nameLocation": "1839:7:2", "nodeType": "VariableDeclaration", "scope": 341, "src": "1823:23:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 295, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1823:7:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "private"}, {"body": {"id": 304, "nodeType": "Block", "src": "1913:51:2", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "id": 301, "name": "__ReentrancyGuard_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "1923:32:2", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()"}}, "id": 302, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1923:34:2", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 303, "nodeType": "ExpressionStatement", "src": "1923:34:2"}]}, "id": 305, "implemented": true, "kind": "function", "modifiers": [{"id": 299, "kind": "modifierInvocation", "modifierName": {"id": 298, "name": "onlyInitializing", "nameLocations": ["1896:16:2"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "1896:16:2"}, "nodeType": "ModifierInvocation", "src": "1896:16:2"}], "name": "__ReentrancyGuard_init", "nameLocation": "1862:22:2", "nodeType": "FunctionDefinition", "parameters": {"id": 297, "nodeType": "ParameterList", "parameters": [], "src": "1884:2:2"}, "returnParameters": {"id": 300, "nodeType": "ParameterList", "parameters": [], "src": "1913:0:2"}, "scope": 341, "src": "1853:111:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 314, "nodeType": "Block", "src": "2040:39:2", "statements": [{"expression": {"id": 312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 310, "name": "_status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 296, "src": "2050:7:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 311, "name": "_NOT_ENTERED", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, "src": "2060:12:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2050:22:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 313, "nodeType": "ExpressionStatement", "src": "2050:22:2"}]}, "id": 315, "implemented": true, "kind": "function", "modifiers": [{"id": 308, "kind": "modifierInvocation", "modifierName": {"id": 307, "name": "onlyInitializing", "nameLocations": ["2023:16:2"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "2023:16:2"}, "nodeType": "ModifierInvocation", "src": "2023:16:2"}], "name": "__ReentrancyGuard_init_unchained", "nameLocation": "1979:32:2", "nodeType": "FunctionDefinition", "parameters": {"id": 306, "nodeType": "ParameterList", "parameters": [], "src": "2011:2:2"}, "returnParameters": {"id": 309, "nodeType": "ParameterList", "parameters": [], "src": "2040:0:2"}, "scope": 341, "src": "1970:109:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 334, "nodeType": "Block", "src": "2480:421:2", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 319, "name": "_status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 296, "src": "2569:7:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"id": 320, "name": "_ENTERED", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 294, "src": "2580:8:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2569:19:2", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", "id": 322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2590:33:2", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", "typeString": "literal_string \"ReentrancyGuard: reentrant call\""}, "value": "ReentrancyGuard: reentrant call"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", "typeString": "literal_string \"ReentrancyGuard: reentrant call\""}], "id": 318, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2561:7:2", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 323, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2561:63:2", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 324, "nodeType": "ExpressionStatement", "src": "2561:63:2"}, {"expression": {"id": 327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 325, "name": "_status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 296, "src": "2699:7:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 326, "name": "_ENTERED", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 294, "src": "2709:8:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2699:18:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 328, "nodeType": "ExpressionStatement", "src": "2699:18:2"}, {"id": 329, "nodeType": "PlaceholderStatement", "src": "2728:1:2"}, {"expression": {"id": 332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 330, "name": "_status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 296, "src": "2872:7:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 331, "name": "_NOT_ENTERED", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, "src": "2882:12:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2872:22:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 333, "nodeType": "ExpressionStatement", "src": "2872:22:2"}]}, "documentation": {"id": 316, "nodeType": "StructuredDocumentation", "src": "2085:366:2", "text": " @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work."}, "id": 335, "name": "nonReentrant", "nameLocation": "2465:12:2", "nodeType": "ModifierDefinition", "parameters": {"id": 317, "nodeType": "ParameterList", "parameters": [], "src": "2477:2:2"}, "src": "2456:445:2", "virtual": false, "visibility": "internal"}, {"constant": false, "documentation": {"id": 336, "nodeType": "StructuredDocumentation", "src": "2907:254:2", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}, "id": 340, "mutability": "mutable", "name": "__gap", "nameLocation": "3186:5:2", "nodeType": "VariableDeclaration", "scope": 341, "src": "3166:25:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$49_storage", "typeString": "uint256[49]"}, "typeName": {"baseType": {"id": 337, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3166:7:2", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 339, "length": {"hexValue": "3439", "id": 338, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3174:2:2", "typeDescriptions": {"typeIdentifier": "t_rational_49_by_1", "typeString": "int_const 49"}, "value": "49"}, "nodeType": "ArrayTypeName", "src": "3166:11:2", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", "typeString": "uint256[49]"}}, "visibility": "private"}], "scope": 342, "src": "916:2278:2", "usedErrors": []}], "src": "97:3098:2"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", "exportedSymbols": {"IERC20Upgradeable": [419]}, "id": 420, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 343, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "106:23:3"}, {"abstract": false, "baseContracts": [], "canonicalName": "IERC20Upgradeable", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 344, "nodeType": "StructuredDocumentation", "src": "131:70:3", "text": " @dev Interface of the ERC20 standard as defined in the EIP."}, "fullyImplemented": false, "id": 419, "linearizedBaseContracts": [419], "name": "IERC20Upgradeable", "nameLocation": "212:17:3", "nodeType": "ContractDefinition", "nodes": [{"anonymous": false, "documentation": {"id": 345, "nodeType": "StructuredDocumentation", "src": "236:158:3", "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."}, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "id": 353, "name": "Transfer", "nameLocation": "405:8:3", "nodeType": "EventDefinition", "parameters": {"id": 352, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 347, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "430:4:3", "nodeType": "VariableDeclaration", "scope": 353, "src": "414:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 346, "name": "address", "nodeType": "ElementaryTypeName", "src": "414:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 349, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "452:2:3", "nodeType": "VariableDeclaration", "scope": 353, "src": "436:18:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 348, "name": "address", "nodeType": "ElementaryTypeName", "src": "436:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 351, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "464:5:3", "nodeType": "VariableDeclaration", "scope": 353, "src": "456:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 350, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "456:7:3", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "413:57:3"}, "src": "399:72:3"}, {"anonymous": false, "documentation": {"id": 354, "nodeType": "StructuredDocumentation", "src": "477:148:3", "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."}, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", "id": 362, "name": "Approval", "nameLocation": "636:8:3", "nodeType": "EventDefinition", "parameters": {"id": 361, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 356, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "661:5:3", "nodeType": "VariableDeclaration", "scope": 362, "src": "645:21:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 355, "name": "address", "nodeType": "ElementaryTypeName", "src": "645:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 358, "indexed": true, "mutability": "mutable", "name": "spender", "nameLocation": "684:7:3", "nodeType": "VariableDeclaration", "scope": 362, "src": "668:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 357, "name": "address", "nodeType": "ElementaryTypeName", "src": "668:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 360, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "701:5:3", "nodeType": "VariableDeclaration", "scope": 362, "src": "693:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 359, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "693:7:3", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "644:63:3"}, "src": "630:78:3"}, {"documentation": {"id": 363, "nodeType": "StructuredDocumentation", "src": "714:66:3", "text": " @dev Returns the amount of tokens in existence."}, "functionSelector": "18160ddd", "id": 368, "implemented": false, "kind": "function", "modifiers": [], "name": "totalSupply", "nameLocation": "794:11:3", "nodeType": "FunctionDefinition", "parameters": {"id": 364, "nodeType": "ParameterList", "parameters": [], "src": "805:2:3"}, "returnParameters": {"id": 367, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 366, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 368, "src": "831:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 365, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "831:7:3", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "830:9:3"}, "scope": 419, "src": "785:55:3", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 369, "nodeType": "StructuredDocumentation", "src": "846:72:3", "text": " @dev Returns the amount of tokens owned by `account`."}, "functionSelector": "70a08231", "id": 376, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "932:9:3", "nodeType": "FunctionDefinition", "parameters": {"id": 372, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 371, "mutability": "mutable", "name": "account", "nameLocation": "950:7:3", "nodeType": "VariableDeclaration", "scope": 376, "src": "942:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 370, "name": "address", "nodeType": "ElementaryTypeName", "src": "942:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "941:17:3"}, "returnParameters": {"id": 375, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 374, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 376, "src": "982:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 373, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "982:7:3", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "981:9:3"}, "scope": 419, "src": "923:68:3", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 377, "nodeType": "StructuredDocumentation", "src": "997:202:3", "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."}, "functionSelector": "a9059cbb", "id": 386, "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", "nameLocation": "1213:8:3", "nodeType": "FunctionDefinition", "parameters": {"id": 382, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 379, "mutability": "mutable", "name": "to", "nameLocation": "1230:2:3", "nodeType": "VariableDeclaration", "scope": 386, "src": "1222:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 378, "name": "address", "nodeType": "ElementaryTypeName", "src": "1222:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 381, "mutability": "mutable", "name": "amount", "nameLocation": "1242:6:3", "nodeType": "VariableDeclaration", "scope": 386, "src": "1234:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 380, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1234:7:3", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1221:28:3"}, "returnParameters": {"id": 385, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 384, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 386, "src": "1268:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 383, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1268:4:3", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "1267:6:3"}, "scope": 419, "src": "1204:70:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 387, "nodeType": "StructuredDocumentation", "src": "1280:264:3", "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."}, "functionSelector": "dd62ed3e", "id": 396, "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", "nameLocation": "1558:9:3", "nodeType": "FunctionDefinition", "parameters": {"id": 392, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 389, "mutability": "mutable", "name": "owner", "nameLocation": "1576:5:3", "nodeType": "VariableDeclaration", "scope": 396, "src": "1568:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 388, "name": "address", "nodeType": "ElementaryTypeName", "src": "1568:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 391, "mutability": "mutable", "name": "spender", "nameLocation": "1591:7:3", "nodeType": "VariableDeclaration", "scope": 396, "src": "1583:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 390, "name": "address", "nodeType": "ElementaryTypeName", "src": "1583:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1567:32:3"}, "returnParameters": {"id": 395, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 394, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 396, "src": "1623:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 393, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1623:7:3", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1622:9:3"}, "scope": 419, "src": "1549:83:3", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 397, "nodeType": "StructuredDocumentation", "src": "1638:642:3", "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."}, "functionSelector": "095ea7b3", "id": 406, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "2294:7:3", "nodeType": "FunctionDefinition", "parameters": {"id": 402, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 399, "mutability": "mutable", "name": "spender", "nameLocation": "2310:7:3", "nodeType": "VariableDeclaration", "scope": 406, "src": "2302:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 398, "name": "address", "nodeType": "ElementaryTypeName", "src": "2302:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 401, "mutability": "mutable", "name": "amount", "nameLocation": "2327:6:3", "nodeType": "VariableDeclaration", "scope": 406, "src": "2319:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 400, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2319:7:3", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2301:33:3"}, "returnParameters": {"id": 405, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 404, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 406, "src": "2353:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 403, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2353:4:3", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "2352:6:3"}, "scope": 419, "src": "2285:74:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 407, "nodeType": "StructuredDocumentation", "src": "2365:287:3", "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."}, "functionSelector": "23b872dd", "id": 418, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "2666:12:3", "nodeType": "FunctionDefinition", "parameters": {"id": 414, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 409, "mutability": "mutable", "name": "from", "nameLocation": "2696:4:3", "nodeType": "VariableDeclaration", "scope": 418, "src": "2688:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 408, "name": "address", "nodeType": "ElementaryTypeName", "src": "2688:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 411, "mutability": "mutable", "name": "to", "nameLocation": "2718:2:3", "nodeType": "VariableDeclaration", "scope": 418, "src": "2710:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 410, "name": "address", "nodeType": "ElementaryTypeName", "src": "2710:7:3", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 413, "mutability": "mutable", "name": "amount", "nameLocation": "2738:6:3", "nodeType": "VariableDeclaration", "scope": 418, "src": "2730:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 412, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2730:7:3", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2678:72:3"}, "returnParameters": {"id": 417, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 416, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 418, "src": "2769:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 415, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2769:4:3", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "2768:6:3"}, "scope": 419, "src": "2657:118:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 420, "src": "202:2575:3", "usedErrors": []}], "src": "106:2672:3"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", "exportedSymbols": {"IERC20PermitUpgradeable": [455]}, "id": 456, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 421, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "114:23:4"}, {"abstract": false, "baseContracts": [], "canonicalName": "IERC20PermitUpgradeable", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 422, "nodeType": "StructuredDocumentation", "src": "139:480:4", "text": " @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."}, "fullyImplemented": false, "id": 455, "linearizedBaseContracts": [455], "name": "IERC20PermitUpgradeable", "nameLocation": "630:23:4", "nodeType": "ContractDefinition", "nodes": [{"documentation": {"id": 423, "nodeType": "StructuredDocumentation", "src": "660:792:4", "text": " @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."}, "functionSelector": "d505accf", "id": 440, "implemented": false, "kind": "function", "modifiers": [], "name": "permit", "nameLocation": "1466:6:4", "nodeType": "FunctionDefinition", "parameters": {"id": 438, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 425, "mutability": "mutable", "name": "owner", "nameLocation": "1490:5:4", "nodeType": "VariableDeclaration", "scope": 440, "src": "1482:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 424, "name": "address", "nodeType": "ElementaryTypeName", "src": "1482:7:4", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 427, "mutability": "mutable", "name": "spender", "nameLocation": "1513:7:4", "nodeType": "VariableDeclaration", "scope": 440, "src": "1505:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 426, "name": "address", "nodeType": "ElementaryTypeName", "src": "1505:7:4", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 429, "mutability": "mutable", "name": "value", "nameLocation": "1538:5:4", "nodeType": "VariableDeclaration", "scope": 440, "src": "1530:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 428, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1530:7:4", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 431, "mutability": "mutable", "name": "deadline", "nameLocation": "1561:8:4", "nodeType": "VariableDeclaration", "scope": 440, "src": "1553:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 430, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1553:7:4", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 433, "mutability": "mutable", "name": "v", "nameLocation": "1585:1:4", "nodeType": "VariableDeclaration", "scope": 440, "src": "1579:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 432, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1579:5:4", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "visibility": "internal"}, {"constant": false, "id": 435, "mutability": "mutable", "name": "r", "nameLocation": "1604:1:4", "nodeType": "VariableDeclaration", "scope": 440, "src": "1596:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 434, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1596:7:4", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 437, "mutability": "mutable", "name": "s", "nameLocation": "1623:1:4", "nodeType": "VariableDeclaration", "scope": 440, "src": "1615:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 436, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1615:7:4", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "1472:158:4"}, "returnParameters": {"id": 439, "nodeType": "ParameterList", "parameters": [], "src": "1639:0:4"}, "scope": 455, "src": "1457:183:4", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 441, "nodeType": "StructuredDocumentation", "src": "1646:294:4", "text": " @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."}, "functionSelector": "7ecebe00", "id": 448, "implemented": false, "kind": "function", "modifiers": [], "name": "nonces", "nameLocation": "1954:6:4", "nodeType": "FunctionDefinition", "parameters": {"id": 444, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 443, "mutability": "mutable", "name": "owner", "nameLocation": "1969:5:4", "nodeType": "VariableDeclaration", "scope": 448, "src": "1961:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 442, "name": "address", "nodeType": "ElementaryTypeName", "src": "1961:7:4", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1960:15:4"}, "returnParameters": {"id": 447, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 446, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 448, "src": "1999:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 445, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1999:7:4", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1998:9:4"}, "scope": 455, "src": "1945:63:4", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 449, "nodeType": "StructuredDocumentation", "src": "2014:128:4", "text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."}, "functionSelector": "3644e515", "id": 454, "implemented": false, "kind": "function", "modifiers": [], "name": "DOMAIN_SEPARATOR", "nameLocation": "2209:16:4", "nodeType": "FunctionDefinition", "parameters": {"id": 450, "nodeType": "ParameterList", "parameters": [], "src": "2225:2:4"}, "returnParameters": {"id": 453, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 452, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 454, "src": "2251:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 451, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2251:7:4", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "2250:9:4"}, "scope": 455, "src": "2200:60:4", "stateMutability": "view", "virtual": false, "visibility": "external"}], "scope": 456, "src": "620:1642:4", "usedErrors": []}], "src": "114:2149:4"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", "exportedSymbols": {"AddressUpgradeable": [2177], "IERC20PermitUpgradeable": [455], "IERC20Upgradeable": [419], "SafeERC20Upgradeable": [736]}, "id": 737, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 457, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "115:23:5"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", "file": "../IERC20Upgradeable.sol", "id": 458, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 737, "sourceUnit": 420, "src": "140:34:5", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", "file": "../extensions/draft-IERC20PermitUpgradeable.sol", "id": 459, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 737, "sourceUnit": 456, "src": "175:57:5", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "file": "../../../utils/AddressUpgradeable.sol", "id": 460, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 737, "sourceUnit": 2178, "src": "233:47:5", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [], "canonicalName": "SafeERC20Upgradeable", "contractDependencies": [], "contractKind": "library", "documentation": {"id": 461, "nodeType": "StructuredDocumentation", "src": "282:457:5", "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."}, "fullyImplemented": true, "id": 736, "linearizedBaseContracts": [736], "name": "SafeERC20Upgradeable", "nameLocation": "748:20:5", "nodeType": "ContractDefinition", "nodes": [{"global": false, "id": 464, "libraryName": {"id": 462, "name": "AddressUpgradeable", "nameLocations": ["781:18:5"], "nodeType": "IdentifierPath", "referencedDeclaration": 2177, "src": "781:18:5"}, "nodeType": "UsingForDirective", "src": "775:37:5", "typeName": {"id": 463, "name": "address", "nodeType": "ElementaryTypeName", "src": "804:7:5", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}}, {"body": {"id": 486, "nodeType": "Block", "src": "931:103:5", "statements": [{"expression": {"arguments": [{"id": 475, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 467, "src": "961:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, {"arguments": [{"expression": {"expression": {"id": 478, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 467, "src": "991:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "997:8:5", "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 386, "src": "991:14:5", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)"}}, "id": 480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1006:8:5", "memberName": "selector", "nodeType": "MemberAccess", "src": "991:23:5", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, {"id": 481, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "1016:2:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 482, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 471, "src": "1020:5:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 476, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "968:3:5", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 477, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "972:18:5", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "968:22:5", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)"}}, "id": 483, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "968:58:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 474, "name": "_callOptionalReturn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 735, "src": "941:19:5", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (contract IERC20Upgradeable,bytes memory)"}}, "id": 484, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "941:86:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 485, "nodeType": "ExpressionStatement", "src": "941:86:5"}]}, "id": 487, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransfer", "nameLocation": "827:12:5", "nodeType": "FunctionDefinition", "parameters": {"id": 472, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 467, "mutability": "mutable", "name": "token", "nameLocation": "867:5:5", "nodeType": "VariableDeclaration", "scope": 487, "src": "849:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, "typeName": {"id": 466, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 465, "name": "IERC20Upgradeable", "nameLocations": ["849:17:5"], "nodeType": "IdentifierPath", "referencedDeclaration": 419, "src": "849:17:5"}, "referencedDeclaration": 419, "src": "849:17:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "visibility": "internal"}, {"constant": false, "id": 469, "mutability": "mutable", "name": "to", "nameLocation": "890:2:5", "nodeType": "VariableDeclaration", "scope": 487, "src": "882:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 468, "name": "address", "nodeType": "ElementaryTypeName", "src": "882:7:5", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 471, "mutability": "mutable", "name": "value", "nameLocation": "910:5:5", "nodeType": "VariableDeclaration", "scope": 487, "src": "902:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 470, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "902:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "839:82:5"}, "returnParameters": {"id": 473, "nodeType": "ParameterList", "parameters": [], "src": "931:0:5"}, "scope": 736, "src": "818:216:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 512, "nodeType": "Block", "src": "1179:113:5", "statements": [{"expression": {"arguments": [{"id": 500, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 490, "src": "1209:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, {"arguments": [{"expression": {"expression": {"id": 503, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 490, "src": "1239:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1245:12:5", "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 418, "src": "1239:18:5", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)"}}, "id": 505, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1258:8:5", "memberName": "selector", "nodeType": "MemberAccess", "src": "1239:27:5", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, {"id": 506, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 492, "src": "1268:4:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 507, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 494, "src": "1274:2:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 508, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 496, "src": "1278:5:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 501, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1216:3:5", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 502, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1220:18:5", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "1216:22:5", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)"}}, "id": 509, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1216:68:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 499, "name": "_callOptionalReturn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 735, "src": "1189:19:5", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (contract IERC20Upgradeable,bytes memory)"}}, "id": 510, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1189:96:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 511, "nodeType": "ExpressionStatement", "src": "1189:96:5"}]}, "id": 513, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "1049:16:5", "nodeType": "FunctionDefinition", "parameters": {"id": 497, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 490, "mutability": "mutable", "name": "token", "nameLocation": "1093:5:5", "nodeType": "VariableDeclaration", "scope": 513, "src": "1075:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, "typeName": {"id": 489, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 488, "name": "IERC20Upgradeable", "nameLocations": ["1075:17:5"], "nodeType": "IdentifierPath", "referencedDeclaration": 419, "src": "1075:17:5"}, "referencedDeclaration": 419, "src": "1075:17:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "visibility": "internal"}, {"constant": false, "id": 492, "mutability": "mutable", "name": "from", "nameLocation": "1116:4:5", "nodeType": "VariableDeclaration", "scope": 513, "src": "1108:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 491, "name": "address", "nodeType": "ElementaryTypeName", "src": "1108:7:5", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 494, "mutability": "mutable", "name": "to", "nameLocation": "1138:2:5", "nodeType": "VariableDeclaration", "scope": 513, "src": "1130:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 493, "name": "address", "nodeType": "ElementaryTypeName", "src": "1130:7:5", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 496, "mutability": "mutable", "name": "value", "nameLocation": "1158:5:5", "nodeType": "VariableDeclaration", "scope": 513, "src": "1150:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 495, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1150:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1065:104:5"}, "returnParameters": {"id": 498, "nodeType": "ParameterList", "parameters": [], "src": "1179:0:5"}, "scope": 736, "src": "1040:252:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 556, "nodeType": "Block", "src": "1669:497:5", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 527, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 525, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 521, "src": "1918:5:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 526, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1927:1:5", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1918:10:5", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 528, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "1917:12:5", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"arguments": [{"id": 533, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "1958:4:5", "typeDescriptions": {"typeIdentifier": "t_contract$_SafeERC20Upgradeable_$736", "typeString": "library SafeERC20Upgradeable"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_SafeERC20Upgradeable_$736", "typeString": "library SafeERC20Upgradeable"}], "id": 532, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1950:7:5", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 531, "name": "address", "nodeType": "ElementaryTypeName", "src": "1950:7:5", "typeDescriptions": {}}}, "id": 534, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1950:13:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 535, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 519, "src": "1965:7:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 529, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 517, "src": "1934:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 530, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1940:9:5", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 396, "src": "1934:15:5", "typeDescriptions": {"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)"}}, "id": 536, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1934:39:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1977:1:5", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1934:44:5", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 539, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "1933:46:5", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "1917:62:5", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", "id": 541, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1993:56:5", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}, "value": "SafeERC20: approve from non-zero to non-zero allowance"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}], "id": 524, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1896:7:5", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 542, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1896:163:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 543, "nodeType": "ExpressionStatement", "src": "1896:163:5"}, {"expression": {"arguments": [{"id": 545, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 517, "src": "2089:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, {"arguments": [{"expression": {"expression": {"id": 548, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 517, "src": "2119:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 549, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2125:7:5", "memberName": "approve", "nodeType": "MemberAccess", "referencedDeclaration": 406, "src": "2119:13:5", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)"}}, "id": 550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2133:8:5", "memberName": "selector", "nodeType": "MemberAccess", "src": "2119:22:5", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, {"id": 551, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 519, "src": "2143:7:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 552, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 521, "src": "2152:5:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 546, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2096:3:5", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 547, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2100:18:5", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "2096:22:5", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)"}}, "id": 553, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2096:62:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 544, "name": "_callOptionalReturn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 735, "src": "2069:19:5", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (contract IERC20Upgradeable,bytes memory)"}}, "id": 554, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2069:90:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 555, "nodeType": "ExpressionStatement", "src": "2069:90:5"}]}, "documentation": {"id": 514, "nodeType": "StructuredDocumentation", "src": "1298:249:5", "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."}, "id": 557, "implemented": true, "kind": "function", "modifiers": [], "name": "safeApprove", "nameLocation": "1561:11:5", "nodeType": "FunctionDefinition", "parameters": {"id": 522, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 517, "mutability": "mutable", "name": "token", "nameLocation": "1600:5:5", "nodeType": "VariableDeclaration", "scope": 557, "src": "1582:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, "typeName": {"id": 516, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 515, "name": "IERC20Upgradeable", "nameLocations": ["1582:17:5"], "nodeType": "IdentifierPath", "referencedDeclaration": 419, "src": "1582:17:5"}, "referencedDeclaration": 419, "src": "1582:17:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "visibility": "internal"}, {"constant": false, "id": 519, "mutability": "mutable", "name": "spender", "nameLocation": "1623:7:5", "nodeType": "VariableDeclaration", "scope": 557, "src": "1615:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 518, "name": "address", "nodeType": "ElementaryTypeName", "src": "1615:7:5", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 521, "mutability": "mutable", "name": "value", "nameLocation": "1648:5:5", "nodeType": "VariableDeclaration", "scope": 557, "src": "1640:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 520, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1640:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1572:87:5"}, "returnParameters": {"id": 523, "nodeType": "ParameterList", "parameters": [], "src": "1669:0:5"}, "scope": 736, "src": "1552:614:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 592, "nodeType": "Block", "src": "2299:194:5", "statements": [{"assignments": [568], "declarations": [{"constant": false, "id": 568, "mutability": "mutable", "name": "newAllowance", "nameLocation": "2317:12:5", "nodeType": "VariableDeclaration", "scope": 592, "src": "2309:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 567, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2309:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 579, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"arguments": [{"id": 573, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "2356:4:5", "typeDescriptions": {"typeIdentifier": "t_contract$_SafeERC20Upgradeable_$736", "typeString": "library SafeERC20Upgradeable"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_SafeERC20Upgradeable_$736", "typeString": "library SafeERC20Upgradeable"}], "id": 572, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2348:7:5", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 571, "name": "address", "nodeType": "ElementaryTypeName", "src": "2348:7:5", "typeDescriptions": {}}}, "id": 574, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2348:13:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 575, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 562, "src": "2363:7:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 569, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 560, "src": "2332:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 570, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2338:9:5", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 396, "src": "2332:15:5", "typeDescriptions": {"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)"}}, "id": 576, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2332:39:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"id": 577, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 564, "src": "2374:5:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2332:47:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "2309:70:5"}, {"expression": {"arguments": [{"id": 581, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 560, "src": "2409:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, {"arguments": [{"expression": {"expression": {"id": 584, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 560, "src": "2439:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2445:7:5", "memberName": "approve", "nodeType": "MemberAccess", "referencedDeclaration": 406, "src": "2439:13:5", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)"}}, "id": 586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2453:8:5", "memberName": "selector", "nodeType": "MemberAccess", "src": "2439:22:5", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, {"id": 587, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 562, "src": "2463:7:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 588, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 568, "src": "2472:12:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 582, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2416:3:5", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 583, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2420:18:5", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "2416:22:5", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)"}}, "id": 589, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2416:69:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 580, "name": "_callOptionalReturn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 735, "src": "2389:19:5", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (contract IERC20Upgradeable,bytes memory)"}}, "id": 590, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2389:97:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 591, "nodeType": "ExpressionStatement", "src": "2389:97:5"}]}, "id": 593, "implemented": true, "kind": "function", "modifiers": [], "name": "safeIncreaseAllowance", "nameLocation": "2181:21:5", "nodeType": "FunctionDefinition", "parameters": {"id": 565, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 560, "mutability": "mutable", "name": "token", "nameLocation": "2230:5:5", "nodeType": "VariableDeclaration", "scope": 593, "src": "2212:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, "typeName": {"id": 559, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 558, "name": "IERC20Upgradeable", "nameLocations": ["2212:17:5"], "nodeType": "IdentifierPath", "referencedDeclaration": 419, "src": "2212:17:5"}, "referencedDeclaration": 419, "src": "2212:17:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "visibility": "internal"}, {"constant": false, "id": 562, "mutability": "mutable", "name": "spender", "nameLocation": "2253:7:5", "nodeType": "VariableDeclaration", "scope": 593, "src": "2245:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 561, "name": "address", "nodeType": "ElementaryTypeName", "src": "2245:7:5", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 564, "mutability": "mutable", "name": "value", "nameLocation": "2278:5:5", "nodeType": "VariableDeclaration", "scope": 593, "src": "2270:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 563, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2270:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2202:87:5"}, "returnParameters": {"id": 566, "nodeType": "ParameterList", "parameters": [], "src": "2299:0:5"}, "scope": 736, "src": "2172:321:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 640, "nodeType": "Block", "src": "2626:370:5", "statements": [{"id": 639, "nodeType": "UncheckedBlock", "src": "2636:354:5", "statements": [{"assignments": [604], "declarations": [{"constant": false, "id": 604, "mutability": "mutable", "name": "oldAllowance", "nameLocation": "2668:12:5", "nodeType": "VariableDeclaration", "scope": 639, "src": "2660:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 603, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2660:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 613, "initialValue": {"arguments": [{"arguments": [{"id": 609, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "2707:4:5", "typeDescriptions": {"typeIdentifier": "t_contract$_SafeERC20Upgradeable_$736", "typeString": "library SafeERC20Upgradeable"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_SafeERC20Upgradeable_$736", "typeString": "library SafeERC20Upgradeable"}], "id": 608, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2699:7:5", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 607, "name": "address", "nodeType": "ElementaryTypeName", "src": "2699:7:5", "typeDescriptions": {}}}, "id": 610, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2699:13:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 611, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 598, "src": "2714:7:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 605, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 596, "src": "2683:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2689:9:5", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 396, "src": "2683:15:5", "typeDescriptions": {"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)"}}, "id": 612, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2683:39:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "2660:62:5"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 615, "name": "oldAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 604, "src": "2744:12:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 616, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 600, "src": "2760:5:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2744:21:5", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", "id": 618, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2767:43:5", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", "typeString": "literal_string \"SafeERC20: decreased allowance below zero\""}, "value": "SafeERC20: decreased allowance below zero"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", "typeString": "literal_string \"SafeERC20: decreased allowance below zero\""}], "id": 614, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2736:7:5", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 619, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2736:75:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 620, "nodeType": "ExpressionStatement", "src": "2736:75:5"}, {"assignments": [622], "declarations": [{"constant": false, "id": 622, "mutability": "mutable", "name": "newAllowance", "nameLocation": "2833:12:5", "nodeType": "VariableDeclaration", "scope": 639, "src": "2825:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 621, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2825:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 626, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 623, "name": "oldAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 604, "src": "2848:12:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"id": 624, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 600, "src": "2863:5:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2848:20:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "2825:43:5"}, {"expression": {"arguments": [{"id": 628, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 596, "src": "2902:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, {"arguments": [{"expression": {"expression": {"id": 631, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 596, "src": "2932:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2938:7:5", "memberName": "approve", "nodeType": "MemberAccess", "referencedDeclaration": 406, "src": "2932:13:5", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)"}}, "id": 633, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2946:8:5", "memberName": "selector", "nodeType": "MemberAccess", "src": "2932:22:5", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, {"id": 634, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 598, "src": "2956:7:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 635, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 622, "src": "2965:12:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 629, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2909:3:5", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 630, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2913:18:5", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "2909:22:5", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)"}}, "id": 636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2909:69:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 627, "name": "_callOptionalReturn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 735, "src": "2882:19:5", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (contract IERC20Upgradeable,bytes memory)"}}, "id": 637, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2882:97:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 638, "nodeType": "ExpressionStatement", "src": "2882:97:5"}]}]}, "id": 641, "implemented": true, "kind": "function", "modifiers": [], "name": "safeDecreaseAllowance", "nameLocation": "2508:21:5", "nodeType": "FunctionDefinition", "parameters": {"id": 601, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 596, "mutability": "mutable", "name": "token", "nameLocation": "2557:5:5", "nodeType": "VariableDeclaration", "scope": 641, "src": "2539:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, "typeName": {"id": 595, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 594, "name": "IERC20Upgradeable", "nameLocations": ["2539:17:5"], "nodeType": "IdentifierPath", "referencedDeclaration": 419, "src": "2539:17:5"}, "referencedDeclaration": 419, "src": "2539:17:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "visibility": "internal"}, {"constant": false, "id": 598, "mutability": "mutable", "name": "spender", "nameLocation": "2580:7:5", "nodeType": "VariableDeclaration", "scope": 641, "src": "2572:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 597, "name": "address", "nodeType": "ElementaryTypeName", "src": "2572:7:5", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 600, "mutability": "mutable", "name": "value", "nameLocation": "2605:5:5", "nodeType": "VariableDeclaration", "scope": 641, "src": "2597:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 599, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2597:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2529:87:5"}, "returnParameters": {"id": 602, "nodeType": "ParameterList", "parameters": [], "src": "2626:0:5"}, "scope": 736, "src": "2499:497:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 696, "nodeType": "Block", "src": "3228:257:5", "statements": [{"assignments": [662], "declarations": [{"constant": false, "id": 662, "mutability": "mutable", "name": "nonceBefore", "nameLocation": "3246:11:5", "nodeType": "VariableDeclaration", "scope": 696, "src": "3238:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 661, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3238:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 667, "initialValue": {"arguments": [{"id": 665, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 646, "src": "3273:5:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 663, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 644, "src": "3260:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$455", "typeString": "contract IERC20PermitUpgradeable"}}, "id": 664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3266:6:5", "memberName": "nonces", "nodeType": "MemberAccess", "referencedDeclaration": 448, "src": "3260:12:5", "typeDescriptions": {"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)"}}, "id": 666, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3260:19:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "3238:41:5"}, {"expression": {"arguments": [{"id": 671, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 646, "src": "3302:5:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 672, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 648, "src": "3309:7:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 673, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 650, "src": "3318:5:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 674, "name": "deadline", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 652, "src": "3325:8:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 675, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 654, "src": "3335:1:5", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, {"id": 676, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 656, "src": "3338:1:5", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 677, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 658, "src": "3341:1:5", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint8", "typeString": "uint8"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}], "expression": {"id": 668, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 644, "src": "3289:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$455", "typeString": "contract IERC20PermitUpgradeable"}}, "id": 670, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3295:6:5", "memberName": "permit", "nodeType": "MemberAccess", "referencedDeclaration": 440, "src": "3289:12:5", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}}, "id": 678, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3289:54:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 679, "nodeType": "ExpressionStatement", "src": "3289:54:5"}, {"assignments": [681], "declarations": [{"constant": false, "id": 681, "mutability": "mutable", "name": "nonceAfter", "nameLocation": "3361:10:5", "nodeType": "VariableDeclaration", "scope": 696, "src": "3353:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 680, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3353:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 686, "initialValue": {"arguments": [{"id": 684, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 646, "src": "3387:5:5", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 682, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 644, "src": "3374:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$455", "typeString": "contract IERC20PermitUpgradeable"}}, "id": 683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3380:6:5", "memberName": "nonces", "nodeType": "MemberAccess", "referencedDeclaration": 448, "src": "3374:12:5", "typeDescriptions": {"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)"}}, "id": 685, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3374:19:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "3353:40:5"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 688, "name": "nonceAfter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 681, "src": "3411:10:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 689, "name": "nonceBefore", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 662, "src": "3425:11:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"hexValue": "31", "id": 690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3439:1:5", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "3425:15:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3411:29:5", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "5361666545524332303a207065726d697420646964206e6f742073756363656564", "id": 693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3442:35:5", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d", "typeString": "literal_string \"SafeERC20: permit did not succeed\""}, "value": "SafeERC20: permit did not succeed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d", "typeString": "literal_string \"SafeERC20: permit did not succeed\""}], "id": 687, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3403:7:5", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 694, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3403:75:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 695, "nodeType": "ExpressionStatement", "src": "3403:75:5"}]}, "id": 697, "implemented": true, "kind": "function", "modifiers": [], "name": "safePermit", "nameLocation": "3011:10:5", "nodeType": "FunctionDefinition", "parameters": {"id": 659, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 644, "mutability": "mutable", "name": "token", "nameLocation": "3055:5:5", "nodeType": "VariableDeclaration", "scope": 697, "src": "3031:29:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$455", "typeString": "contract IERC20PermitUpgradeable"}, "typeName": {"id": 643, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 642, "name": "IERC20PermitUpgradeable", "nameLocations": ["3031:23:5"], "nodeType": "IdentifierPath", "referencedDeclaration": 455, "src": "3031:23:5"}, "referencedDeclaration": 455, "src": "3031:23:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$455", "typeString": "contract IERC20PermitUpgradeable"}}, "visibility": "internal"}, {"constant": false, "id": 646, "mutability": "mutable", "name": "owner", "nameLocation": "3078:5:5", "nodeType": "VariableDeclaration", "scope": 697, "src": "3070:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 645, "name": "address", "nodeType": "ElementaryTypeName", "src": "3070:7:5", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 648, "mutability": "mutable", "name": "spender", "nameLocation": "3101:7:5", "nodeType": "VariableDeclaration", "scope": 697, "src": "3093:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 647, "name": "address", "nodeType": "ElementaryTypeName", "src": "3093:7:5", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 650, "mutability": "mutable", "name": "value", "nameLocation": "3126:5:5", "nodeType": "VariableDeclaration", "scope": 697, "src": "3118:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 649, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3118:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 652, "mutability": "mutable", "name": "deadline", "nameLocation": "3149:8:5", "nodeType": "VariableDeclaration", "scope": 697, "src": "3141:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 651, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3141:7:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 654, "mutability": "mutable", "name": "v", "nameLocation": "3173:1:5", "nodeType": "VariableDeclaration", "scope": 697, "src": "3167:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 653, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3167:5:5", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "visibility": "internal"}, {"constant": false, "id": 656, "mutability": "mutable", "name": "r", "nameLocation": "3192:1:5", "nodeType": "VariableDeclaration", "scope": 697, "src": "3184:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 655, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3184:7:5", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 658, "mutability": "mutable", "name": "s", "nameLocation": "3211:1:5", "nodeType": "VariableDeclaration", "scope": 697, "src": "3203:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 657, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3203:7:5", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "3021:197:5"}, "returnParameters": {"id": 660, "nodeType": "ParameterList", "parameters": [], "src": "3228:0:5"}, "scope": 736, "src": "3002:483:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 734, "nodeType": "Block", "src": "3949:636:5", "statements": [{"assignments": [707], "declarations": [{"constant": false, "id": 707, "mutability": "mutable", "name": "returndata", "nameLocation": "4311:10:5", "nodeType": "VariableDeclaration", "scope": 734, "src": "4298:23:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 706, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4298:5:5", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 716, "initialValue": {"arguments": [{"id": 713, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 703, "src": "4352:4:5", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", "id": 714, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4358:34:5", "typeDescriptions": {"typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", "typeString": "literal_string \"SafeERC20: low-level call failed\""}, "value": "SafeERC20: low-level call failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", "typeString": "literal_string \"SafeERC20: low-level call failed\""}], "expression": {"arguments": [{"id": 710, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 701, "src": "4332:5:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}], "id": 709, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4324:7:5", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 708, "name": "address", "nodeType": "ElementaryTypeName", "src": "4324:7:5", "typeDescriptions": {}}}, "id": 711, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4324:14:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 712, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4339:12:5", "memberName": "functionCall", "nodeType": "MemberAccess", "referencedDeclaration": 2023, "src": "4324:27:5", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)"}}, "id": 715, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4324:69:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "nodeType": "VariableDeclarationStatement", "src": "4298:95:5"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 717, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 707, "src": "4407:10:5", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4418:6:5", "memberName": "length", "nodeType": "MemberAccess", "src": "4407:17:5", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 719, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4427:1:5", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "4407:21:5", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 733, "nodeType": "IfStatement", "src": "4403:176:5", "trueBody": {"id": 732, "nodeType": "Block", "src": "4430:149:5", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 724, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 707, "src": "4502:10:5", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"components": [{"id": 726, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4515:4:5", "typeDescriptions": {"typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)"}, "typeName": {"id": 725, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4515:4:5", "typeDescriptions": {}}}], "id": 727, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "4514:6:5", "typeDescriptions": {"typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)"}], "expression": {"id": 722, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4491:3:5", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 723, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4495:6:5", "memberName": "decode", "nodeType": "MemberAccess", "src": "4491:10:5", "typeDescriptions": {"typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 728, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4491:30:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", "id": 729, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4523:44:5", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\""}, "value": "SafeERC20: ERC20 operation did not succeed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\""}], "id": 721, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "4483:7:5", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 730, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4483:85:5", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 731, "nodeType": "ExpressionStatement", "src": "4483:85:5"}]}}]}, "documentation": {"id": 698, "nodeType": "StructuredDocumentation", "src": "3491:372:5", "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."}, "id": 735, "implemented": true, "kind": "function", "modifiers": [], "name": "_callOptionalReturn", "nameLocation": "3877:19:5", "nodeType": "FunctionDefinition", "parameters": {"id": 704, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 701, "mutability": "mutable", "name": "token", "nameLocation": "3915:5:5", "nodeType": "VariableDeclaration", "scope": 735, "src": "3897:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}, "typeName": {"id": 700, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 699, "name": "IERC20Upgradeable", "nameLocations": ["3897:17:5"], "nodeType": "IdentifierPath", "referencedDeclaration": 419, "src": "3897:17:5"}, "referencedDeclaration": 419, "src": "3897:17:5", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "visibility": "internal"}, {"constant": false, "id": 703, "mutability": "mutable", "name": "data", "nameLocation": "3935:4:5", "nodeType": "VariableDeclaration", "scope": 735, "src": "3922:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 702, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3922:5:5", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "3896:44:5"}, "returnParameters": {"id": 705, "nodeType": "ParameterList", "parameters": [], "src": "3949:0:5"}, "scope": 736, "src": "3868:717:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "private"}], "scope": 737, "src": "740:3847:5", "usedErrors": []}], "src": "115:4473:5"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol", "exportedSymbols": {"AddressUpgradeable": [2177], "ContextUpgradeable": [2219], "ERC165Upgradeable": [2683], "ERC721Upgradeable": [1628], "IERC165Upgradeable": [2695], "IERC721MetadataUpgradeable": [1934], "IERC721ReceiverUpgradeable": [1646], "IERC721Upgradeable": [1762], "Initializable": [282], "StringsUpgradeable": [2445]}, "id": 1629, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 738, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "107:23:6"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol", "file": "./IERC721Upgradeable.sol", "id": 739, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1629, "sourceUnit": 1763, "src": "132:34:6", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol", "file": "./IERC721ReceiverUpgradeable.sol", "id": 740, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1629, "sourceUnit": 1647, "src": "167:42:6", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol", "file": "./extensions/IERC721MetadataUpgradeable.sol", "id": 741, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1629, "sourceUnit": 1935, "src": "210:53:6", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "file": "../../utils/AddressUpgradeable.sol", "id": 742, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1629, "sourceUnit": 2178, "src": "264:44:6", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "file": "../../utils/ContextUpgradeable.sol", "id": 743, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1629, "sourceUnit": 2220, "src": "309:44:6", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "file": "../../utils/StringsUpgradeable.sol", "id": 744, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1629, "sourceUnit": 2446, "src": "354:44:6", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", "file": "../../utils/introspection/ERC165Upgradeable.sol", "id": 745, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1629, "sourceUnit": 2684, "src": "399:57:6", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../../proxy/utils/Initializable.sol", "id": 746, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1629, "sourceUnit": 283, "src": "457:45:6", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 748, "name": "Initializable", "nameLocations": ["781:13:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 282, "src": "781:13:6"}, "id": 749, "nodeType": "InheritanceSpecifier", "src": "781:13:6"}, {"baseName": {"id": 750, "name": "ContextUpgradeable", "nameLocations": ["796:18:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 2219, "src": "796:18:6"}, "id": 751, "nodeType": "InheritanceSpecifier", "src": "796:18:6"}, {"baseName": {"id": 752, "name": "ERC165Upgradeable", "nameLocations": ["816:17:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 2683, "src": "816:17:6"}, "id": 753, "nodeType": "InheritanceSpecifier", "src": "816:17:6"}, {"baseName": {"id": 754, "name": "IERC721Upgradeable", "nameLocations": ["835:18:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 1762, "src": "835:18:6"}, "id": 755, "nodeType": "InheritanceSpecifier", "src": "835:18:6"}, {"baseName": {"id": 756, "name": "IERC721MetadataUpgradeable", "nameLocations": ["855:26:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 1934, "src": "855:26:6"}, "id": 757, "nodeType": "InheritanceSpecifier", "src": "855:26:6"}], "canonicalName": "ERC721Upgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 747, "nodeType": "StructuredDocumentation", "src": "504:246:6", "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."}, "fullyImplemented": true, "id": 1628, "linearizedBaseContracts": [1628, 1934, 1762, 2683, 2695, 2219, 282], "name": "ERC721Upgradeable", "nameLocation": "760:17:6", "nodeType": "ContractDefinition", "nodes": [{"global": false, "id": 760, "libraryName": {"id": 758, "name": "AddressUpgradeable", "nameLocations": ["894:18:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 2177, "src": "894:18:6"}, "nodeType": "UsingForDirective", "src": "888:37:6", "typeName": {"id": 759, "name": "address", "nodeType": "ElementaryTypeName", "src": "917:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}}, {"global": false, "id": 763, "libraryName": {"id": 761, "name": "StringsUpgradeable", "nameLocations": ["936:18:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 2445, "src": "936:18:6"}, "nodeType": "UsingForDirective", "src": "930:37:6", "typeName": {"id": 762, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "959:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}}, {"constant": false, "id": 765, "mutability": "mutable", "name": "_name", "nameLocation": "1006:5:6", "nodeType": "VariableDeclaration", "scope": 1628, "src": "991:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string"}, "typeName": {"id": 764, "name": "string", "nodeType": "ElementaryTypeName", "src": "991:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "private"}, {"constant": false, "id": 767, "mutability": "mutable", "name": "_symbol", "nameLocation": "1053:7:6", "nodeType": "VariableDeclaration", "scope": 1628, "src": "1038:22:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string"}, "typeName": {"id": 766, "name": "string", "nodeType": "ElementaryTypeName", "src": "1038:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "private"}, {"constant": false, "id": 771, "mutability": "mutable", "name": "_owners", "nameLocation": "1149:7:6", "nodeType": "VariableDeclaration", "scope": 1628, "src": "1113:43:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}, "typeName": {"id": 770, "keyType": {"id": 768, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1121:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Mapping", "src": "1113:27:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}, "valueType": {"id": 769, "name": "address", "nodeType": "ElementaryTypeName", "src": "1132:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}}, "visibility": "private"}, {"constant": false, "id": 775, "mutability": "mutable", "name": "_balances", "nameLocation": "1243:9:6", "nodeType": "VariableDeclaration", "scope": 1628, "src": "1207:45:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}, "typeName": {"id": 774, "keyType": {"id": 772, "name": "address", "nodeType": "ElementaryTypeName", "src": "1215:7:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1207:27:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}, "valueType": {"id": 773, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1226:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}}, "visibility": "private"}, {"constant": false, "id": 779, "mutability": "mutable", "name": "_tokenApprovals", "nameLocation": "1344:15:6", "nodeType": "VariableDeclaration", "scope": 1628, "src": "1308:51:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}, "typeName": {"id": 778, "keyType": {"id": 776, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1316:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Mapping", "src": "1308:27:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}, "valueType": {"id": 777, "name": "address", "nodeType": "ElementaryTypeName", "src": "1327:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}}, "visibility": "private"}, {"constant": false, "id": 785, "mutability": "mutable", "name": "_operatorApprovals", "nameLocation": "1467:18:6", "nodeType": "VariableDeclaration", "scope": 1628, "src": "1414:71:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))"}, "typeName": {"id": 784, "keyType": {"id": 780, "name": "address", "nodeType": "ElementaryTypeName", "src": "1422:7:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1414:44:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))"}, "valueType": {"id": 783, "keyType": {"id": 781, "name": "address", "nodeType": "ElementaryTypeName", "src": "1441:7:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1433:24:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}, "valueType": {"id": 782, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1452:4:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}}}, "visibility": "private"}, {"body": {"id": 800, "nodeType": "Block", "src": "1698:56:6", "statements": [{"expression": {"arguments": [{"id": 796, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 788, "src": "1732:5:6", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 797, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 790, "src": "1739:7:6", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 795, "name": "__ERC721_init_unchained", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 819, "src": "1708:23:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)"}}, "id": 798, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1708:39:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 799, "nodeType": "ExpressionStatement", "src": "1708:39:6"}]}, "documentation": {"id": 786, "nodeType": "StructuredDocumentation", "src": "1492:108:6", "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."}, "id": 801, "implemented": true, "kind": "function", "modifiers": [{"id": 793, "kind": "modifierInvocation", "modifierName": {"id": 792, "name": "onlyInitializing", "nameLocations": ["1681:16:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "1681:16:6"}, "nodeType": "ModifierInvocation", "src": "1681:16:6"}], "name": "__ERC721_init", "nameLocation": "1614:13:6", "nodeType": "FunctionDefinition", "parameters": {"id": 791, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 788, "mutability": "mutable", "name": "name_", "nameLocation": "1642:5:6", "nodeType": "VariableDeclaration", "scope": 801, "src": "1628:19:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 787, "name": "string", "nodeType": "ElementaryTypeName", "src": "1628:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 790, "mutability": "mutable", "name": "symbol_", "nameLocation": "1663:7:6", "nodeType": "VariableDeclaration", "scope": 801, "src": "1649:21:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 789, "name": "string", "nodeType": "ElementaryTypeName", "src": "1649:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1627:44:6"}, "returnParameters": {"id": 794, "nodeType": "ParameterList", "parameters": [], "src": "1698:0:6"}, "scope": 1628, "src": "1605:149:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 818, "nodeType": "Block", "src": "1863:57:6", "statements": [{"expression": {"id": 812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 810, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 765, "src": "1873:5:6", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 811, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 803, "src": "1881:5:6", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "src": "1873:13:6", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "id": 813, "nodeType": "ExpressionStatement", "src": "1873:13:6"}, {"expression": {"id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 814, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 767, "src": "1896:7:6", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 815, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 805, "src": "1906:7:6", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "src": "1896:17:6", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "id": 817, "nodeType": "ExpressionStatement", "src": "1896:17:6"}]}, "id": 819, "implemented": true, "kind": "function", "modifiers": [{"id": 808, "kind": "modifierInvocation", "modifierName": {"id": 807, "name": "onlyInitializing", "nameLocations": ["1846:16:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "1846:16:6"}, "nodeType": "ModifierInvocation", "src": "1846:16:6"}], "name": "__ERC721_init_unchained", "nameLocation": "1769:23:6", "nodeType": "FunctionDefinition", "parameters": {"id": 806, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 803, "mutability": "mutable", "name": "name_", "nameLocation": "1807:5:6", "nodeType": "VariableDeclaration", "scope": 819, "src": "1793:19:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 802, "name": "string", "nodeType": "ElementaryTypeName", "src": "1793:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 805, "mutability": "mutable", "name": "symbol_", "nameLocation": "1828:7:6", "nodeType": "VariableDeclaration", "scope": 819, "src": "1814:21:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 804, "name": "string", "nodeType": "ElementaryTypeName", "src": "1814:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1792:44:6"}, "returnParameters": {"id": 809, "nodeType": "ParameterList", "parameters": [], "src": "1863:0:6"}, "scope": 1628, "src": "1760:160:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"baseFunctions": [2677, 2694], "body": {"id": 849, "nodeType": "Block", "src": "2117:214:6", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "id": 835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 830, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 822, "src": "2146:11:6", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"arguments": [{"id": 832, "name": "IERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, "src": "2166:18:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721Upgradeable_$1762_$", "typeString": "type(contract IERC721Upgradeable)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_IERC721Upgradeable_$1762_$", "typeString": "type(contract IERC721Upgradeable)"}], "id": 831, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "2161:4:6", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 833, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2161:24:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Upgradeable_$1762", "typeString": "type(contract IERC721Upgradeable)"}}, "id": 834, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2186:11:6", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "2161:36:6", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "src": "2146:51:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"commonType": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "id": 841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 836, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 822, "src": "2213:11:6", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"arguments": [{"id": 838, "name": "IERC721MetadataUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1934, "src": "2233:26:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721MetadataUpgradeable_$1934_$", "typeString": "type(contract IERC721MetadataUpgradeable)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_IERC721MetadataUpgradeable_$1934_$", "typeString": "type(contract IERC721MetadataUpgradeable)"}], "id": 837, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "2228:4:6", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 839, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2228:32:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_IERC721MetadataUpgradeable_$1934", "typeString": "type(contract IERC721MetadataUpgradeable)"}}, "id": 840, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2261:11:6", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "2228:44:6", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "src": "2213:59:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "2146:126:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"arguments": [{"id": 845, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 822, "src": "2312:11:6", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "expression": {"id": 843, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "2288:5:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_ERC721Upgradeable_$1628_$", "typeString": "type(contract super ERC721Upgradeable)"}}, "id": 844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2294:17:6", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 2677, "src": "2288:23:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) view returns (bool)"}}, "id": 846, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2288:36:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "2146:178:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 829, "id": 848, "nodeType": "Return", "src": "2127:197:6"}]}, "documentation": {"id": 820, "nodeType": "StructuredDocumentation", "src": "1926:56:6", "text": " @dev See {IERC165-supportsInterface}."}, "functionSelector": "01ffc9a7", "id": 850, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "1996:17:6", "nodeType": "FunctionDefinition", "overrides": {"id": 826, "nodeType": "OverrideSpecifier", "overrides": [{"id": 824, "name": "ERC165Upgradeable", "nameLocations": ["2063:17:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 2683, "src": "2063:17:6"}, {"id": 825, "name": "IERC165Upgradeable", "nameLocations": ["2082:18:6"], "nodeType": "IdentifierPath", "referencedDeclaration": 2695, "src": "2082:18:6"}], "src": "2054:47:6"}, "parameters": {"id": 823, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 822, "mutability": "mutable", "name": "interfaceId", "nameLocation": "2021:11:6", "nodeType": "VariableDeclaration", "scope": 850, "src": "2014:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 821, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2014:6:6", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "2013:20:6"}, "returnParameters": {"id": 829, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 828, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 850, "src": "2111:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 827, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2111:4:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "2110:6:6"}, "scope": 1628, "src": "1987:344:6", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [1687], "body": {"id": 873, "nodeType": "Block", "src": "2471:123:6", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 860, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 853, "src": "2489:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 863, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2506:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 862, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2498:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 861, "name": "address", "nodeType": "ElementaryTypeName", "src": "2498:7:6", "typeDescriptions": {}}}, "id": 864, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2498:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2489:19:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572", "id": 866, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2510:43:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", "typeString": "literal_string \"ERC721: address zero is not a valid owner\""}, "value": "ERC721: address zero is not a valid owner"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", "typeString": "literal_string \"ERC721: address zero is not a valid owner\""}], "id": 859, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2481:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 867, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2481:73:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 868, "nodeType": "ExpressionStatement", "src": "2481:73:6"}, {"expression": {"baseExpression": {"id": 869, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 775, "src": "2571:9:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 871, "indexExpression": {"id": 870, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 853, "src": "2581:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2571:16:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 858, "id": 872, "nodeType": "Return", "src": "2564:23:6"}]}, "documentation": {"id": 851, "nodeType": "StructuredDocumentation", "src": "2337:48:6", "text": " @dev See {IERC721-balanceOf}."}, "functionSelector": "70a08231", "id": 874, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "2399:9:6", "nodeType": "FunctionDefinition", "overrides": {"id": 855, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2444:8:6"}, "parameters": {"id": 854, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 853, "mutability": "mutable", "name": "owner", "nameLocation": "2417:5:6", "nodeType": "VariableDeclaration", "scope": 874, "src": "2409:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 852, "name": "address", "nodeType": "ElementaryTypeName", "src": "2409:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2408:15:6"}, "returnParameters": {"id": 858, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 857, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 874, "src": "2462:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 856, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2462:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2461:9:6"}, "scope": 1628, "src": "2390:204:6", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [1695], "body": {"id": 901, "nodeType": "Block", "src": "2732:137:6", "statements": [{"assignments": [884], "declarations": [{"constant": false, "id": 884, "mutability": "mutable", "name": "owner", "nameLocation": "2750:5:6", "nodeType": "VariableDeclaration", "scope": 901, "src": "2742:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 883, "name": "address", "nodeType": "ElementaryTypeName", "src": "2742:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 888, "initialValue": {"baseExpression": {"id": 885, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 771, "src": "2758:7:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 887, "indexExpression": {"id": 886, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 877, "src": "2766:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2758:16:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "2742:32:6"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 895, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 890, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 884, "src": "2792:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 893, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2809:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 892, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2801:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 891, "name": "address", "nodeType": "ElementaryTypeName", "src": "2801:7:6", "typeDescriptions": {}}}, "id": 894, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2801:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2792:19:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20696e76616c696420746f6b656e204944", "id": 896, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2813:26:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\""}, "value": "ERC721: invalid token ID"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\""}], "id": 889, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2784:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 897, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2784:56:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 898, "nodeType": "ExpressionStatement", "src": "2784:56:6"}, {"expression": {"id": 899, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 884, "src": "2857:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 882, "id": 900, "nodeType": "Return", "src": "2850:12:6"}]}, "documentation": {"id": 875, "nodeType": "StructuredDocumentation", "src": "2600:46:6", "text": " @dev See {IERC721-ownerOf}."}, "functionSelector": "6352211e", "id": 902, "implemented": true, "kind": "function", "modifiers": [], "name": "ownerOf", "nameLocation": "2660:7:6", "nodeType": "FunctionDefinition", "overrides": {"id": 879, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2705:8:6"}, "parameters": {"id": 878, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 877, "mutability": "mutable", "name": "tokenId", "nameLocation": "2676:7:6", "nodeType": "VariableDeclaration", "scope": 902, "src": "2668:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 876, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2668:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2667:17:6"}, "returnParameters": {"id": 882, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 881, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 902, "src": "2723:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 880, "name": "address", "nodeType": "ElementaryTypeName", "src": "2723:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2722:9:6"}, "scope": 1628, "src": "2651:218:6", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [1919], "body": {"id": 911, "nodeType": "Block", "src": "3000:29:6", "statements": [{"expression": {"id": 909, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 765, "src": "3017:5:6", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "functionReturnParameters": 908, "id": 910, "nodeType": "Return", "src": "3010:12:6"}]}, "documentation": {"id": 903, "nodeType": "StructuredDocumentation", "src": "2875:51:6", "text": " @dev See {IERC721Metadata-name}."}, "functionSelector": "06fdde03", "id": 912, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nameLocation": "2940:4:6", "nodeType": "FunctionDefinition", "overrides": {"id": 905, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2967:8:6"}, "parameters": {"id": 904, "nodeType": "ParameterList", "parameters": [], "src": "2944:2:6"}, "returnParameters": {"id": 908, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 907, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 912, "src": "2985:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 906, "name": "string", "nodeType": "ElementaryTypeName", "src": "2985:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2984:15:6"}, "scope": 1628, "src": "2931:98:6", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [1925], "body": {"id": 921, "nodeType": "Block", "src": "3164:31:6", "statements": [{"expression": {"id": 919, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 767, "src": "3181:7:6", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "functionReturnParameters": 918, "id": 920, "nodeType": "Return", "src": "3174:14:6"}]}, "documentation": {"id": 913, "nodeType": "StructuredDocumentation", "src": "3035:53:6", "text": " @dev See {IERC721Metadata-symbol}."}, "functionSelector": "95d89b41", "id": 922, "implemented": true, "kind": "function", "modifiers": [], "name": "symbol", "nameLocation": "3102:6:6", "nodeType": "FunctionDefinition", "overrides": {"id": 915, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3131:8:6"}, "parameters": {"id": 914, "nodeType": "ParameterList", "parameters": [], "src": "3108:2:6"}, "returnParameters": {"id": 918, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 917, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 922, "src": "3149:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 916, "name": "string", "nodeType": "ElementaryTypeName", "src": "3149:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "3148:15:6"}, "scope": 1628, "src": "3093:102:6", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [1933], "body": {"id": 960, "nodeType": "Block", "src": "3349:188:6", "statements": [{"expression": {"arguments": [{"id": 932, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 925, "src": "3374:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 931, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1538, "src": "3359:14:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view"}}, "id": 933, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3359:23:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 934, "nodeType": "ExpressionStatement", "src": "3359:23:6"}, {"assignments": [936], "declarations": [{"constant": false, "id": 936, "mutability": "mutable", "name": "baseURI", "nameLocation": "3407:7:6", "nodeType": "VariableDeclaration", "scope": 960, "src": "3393:21:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 935, "name": "string", "nodeType": "ElementaryTypeName", "src": "3393:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "id": 939, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 937, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 970, "src": "3417:8:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view returns (string memory)"}}, "id": 938, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3417:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "nodeType": "VariableDeclarationStatement", "src": "3393:34:6"}, {"expression": {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 942, "name": "baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 936, "src": "3450:7:6", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 941, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3444:5:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)"}, "typeName": {"id": 940, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3444:5:6", "typeDescriptions": {}}}, "id": 943, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3444:14:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3459:6:6", "memberName": "length", "nodeType": "MemberAccess", "src": "3444:21:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 945, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3468:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "3444:25:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseExpression": {"hexValue": "", "id": 957, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3528:2:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}, "id": 958, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "3444:86:6", "trueExpression": {"arguments": [{"arguments": [{"id": 951, "name": "baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 936, "src": "3496:7:6", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 952, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 925, "src": "3505:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 953, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3513:8:6", "memberName": "toString", "nodeType": "MemberAccess", "referencedDeclaration": 2307, "src": "3505:16:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (string memory)"}}, "id": 954, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3505:18:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 949, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3479:3:6", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 950, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3483:12:6", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "3479:16:6", "typeDescriptions": {"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)"}}, "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3479:45:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 948, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3472:6:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)"}, "typeName": {"id": 947, "name": "string", "nodeType": "ElementaryTypeName", "src": "3472:6:6", "typeDescriptions": {}}}, "id": 956, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3472:53:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 930, "id": 959, "nodeType": "Return", "src": "3437:93:6"}]}, "documentation": {"id": 923, "nodeType": "StructuredDocumentation", "src": "3201:55:6", "text": " @dev See {IERC721Metadata-tokenURI}."}, "functionSelector": "c87b56dd", "id": 961, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenURI", "nameLocation": "3270:8:6", "nodeType": "FunctionDefinition", "overrides": {"id": 927, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3316:8:6"}, "parameters": {"id": 926, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 925, "mutability": "mutable", "name": "tokenId", "nameLocation": "3287:7:6", "nodeType": "VariableDeclaration", "scope": 961, "src": "3279:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 924, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3279:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3278:17:6"}, "returnParameters": {"id": 930, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 929, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 961, "src": "3334:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 928, "name": "string", "nodeType": "ElementaryTypeName", "src": "3334:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "3333:15:6"}, "scope": 1628, "src": "3261:276:6", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"body": {"id": 969, "nodeType": "Block", "src": "3845:26:6", "statements": [{"expression": {"hexValue": "", "id": 967, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3862:2:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}, "functionReturnParameters": 966, "id": 968, "nodeType": "Return", "src": "3855:9:6"}]}, "documentation": {"id": 962, "nodeType": "StructuredDocumentation", "src": "3543:231:6", "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."}, "id": 970, "implemented": true, "kind": "function", "modifiers": [], "name": "_baseURI", "nameLocation": "3788:8:6", "nodeType": "FunctionDefinition", "parameters": {"id": 963, "nodeType": "ParameterList", "parameters": [], "src": "3796:2:6"}, "returnParameters": {"id": 966, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 965, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 970, "src": "3830:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 964, "name": "string", "nodeType": "ElementaryTypeName", "src": "3830:6:6", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "3829:15:6"}, "scope": 1628, "src": "3779:92:6", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"baseFunctions": [1735], "body": {"id": 1012, "nodeType": "Block", "src": "3998:348:6", "statements": [{"assignments": [980], "declarations": [{"constant": false, "id": 980, "mutability": "mutable", "name": "owner", "nameLocation": "4016:5:6", "nodeType": "VariableDeclaration", "scope": 1012, "src": "4008:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 979, "name": "address", "nodeType": "ElementaryTypeName", "src": "4008:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 985, "initialValue": {"arguments": [{"id": 983, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 975, "src": "4050:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 981, "name": "ERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1628, "src": "4024:17:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$1628_$", "typeString": "type(contract ERC721Upgradeable)"}}, "id": 982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4042:7:6", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 902, "src": "4024:25:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 984, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4024:34:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "4008:50:6"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 987, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 973, "src": "4076:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"id": 988, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "4082:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "4076:11:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", "id": 990, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4089:35:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", "typeString": "literal_string \"ERC721: approval to current owner\""}, "value": "ERC721: approval to current owner"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", "typeString": "literal_string \"ERC721: approval to current owner\""}], "id": 986, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "4068:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 991, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4068:57:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 992, "nodeType": "ExpressionStatement", "src": "4068:57:6"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 994, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "4157:10:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 995, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4157:12:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 996, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "4173:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "4157:21:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"arguments": [{"id": 999, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "4199:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [], "expression": {"argumentTypes": [], "id": 1000, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "4206:10:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 1001, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4206:12:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 998, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1066, "src": "4182:16:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)"}}, "id": 1002, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4182:37:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "4157:62:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c", "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4233:64:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304", "typeString": "literal_string \"ERC721: approve caller is not token owner nor approved for all\""}, "value": "ERC721: approve caller is not token owner nor approved for all"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304", "typeString": "literal_string \"ERC721: approve caller is not token owner nor approved for all\""}], "id": 993, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "4136:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4136:171:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1006, "nodeType": "ExpressionStatement", "src": "4136:171:6"}, {"expression": {"arguments": [{"id": 1008, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 973, "src": "4327:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1009, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 975, "src": "4331:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1007, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1492, "src": "4318:8:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 1010, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4318:21:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1011, "nodeType": "ExpressionStatement", "src": "4318:21:6"}]}, "documentation": {"id": 971, "nodeType": "StructuredDocumentation", "src": "3877:46:6", "text": " @dev See {IERC721-approve}."}, "functionSelector": "095ea7b3", "id": 1013, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "3937:7:6", "nodeType": "FunctionDefinition", "overrides": {"id": 977, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3989:8:6"}, "parameters": {"id": 976, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 973, "mutability": "mutable", "name": "to", "nameLocation": "3953:2:6", "nodeType": "VariableDeclaration", "scope": 1013, "src": "3945:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 972, "name": "address", "nodeType": "ElementaryTypeName", "src": "3945:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 975, "mutability": "mutable", "name": "tokenId", "nameLocation": "3965:7:6", "nodeType": "VariableDeclaration", "scope": 1013, "src": "3957:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 974, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3957:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3944:29:6"}, "returnParameters": {"id": 978, "nodeType": "ParameterList", "parameters": [], "src": "3998:0:6"}, "scope": 1628, "src": "3928:418:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [1751], "body": {"id": 1030, "nodeType": "Block", "src": "4492:82:6", "statements": [{"expression": {"arguments": [{"id": 1023, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1016, "src": "4517:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1022, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1538, "src": "4502:14:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view"}}, "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4502:23:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1025, "nodeType": "ExpressionStatement", "src": "4502:23:6"}, {"expression": {"baseExpression": {"id": 1026, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 779, "src": "4543:15:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 1028, "indexExpression": {"id": 1027, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1016, "src": "4559:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4543:24:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 1021, "id": 1029, "nodeType": "Return", "src": "4536:31:6"}]}, "documentation": {"id": 1014, "nodeType": "StructuredDocumentation", "src": "4352:50:6", "text": " @dev See {IERC721-getApproved}."}, "functionSelector": "081812fc", "id": 1031, "implemented": true, "kind": "function", "modifiers": [], "name": "getApproved", "nameLocation": "4416:11:6", "nodeType": "FunctionDefinition", "overrides": {"id": 1018, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4465:8:6"}, "parameters": {"id": 1017, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1016, "mutability": "mutable", "name": "tokenId", "nameLocation": "4436:7:6", "nodeType": "VariableDeclaration", "scope": 1031, "src": "4428:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1015, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4428:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4427:17:6"}, "returnParameters": {"id": 1021, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1020, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1031, "src": "4483:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1019, "name": "address", "nodeType": "ElementaryTypeName", "src": "4483:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "4482:9:6"}, "scope": 1628, "src": "4407:167:6", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [1743], "body": {"id": 1047, "nodeType": "Block", "src": "4725:69:6", "statements": [{"expression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 1041, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "4754:10:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 1042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4754:12:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1043, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1034, "src": "4768:8:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1044, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1036, "src": "4778:8:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 1040, "name": "_setApprovalForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1524, "src": "4735:18:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)"}}, "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4735:52:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1046, "nodeType": "ExpressionStatement", "src": "4735:52:6"}]}, "documentation": {"id": 1032, "nodeType": "StructuredDocumentation", "src": "4580:56:6", "text": " @dev See {IERC721-setApprovalForAll}."}, "functionSelector": "a22cb465", "id": 1048, "implemented": true, "kind": "function", "modifiers": [], "name": "setApprovalForAll", "nameLocation": "4650:17:6", "nodeType": "FunctionDefinition", "overrides": {"id": 1038, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4716:8:6"}, "parameters": {"id": 1037, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1034, "mutability": "mutable", "name": "operator", "nameLocation": "4676:8:6", "nodeType": "VariableDeclaration", "scope": 1048, "src": "4668:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1033, "name": "address", "nodeType": "ElementaryTypeName", "src": "4668:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1036, "mutability": "mutable", "name": "approved", "nameLocation": "4691:8:6", "nodeType": "VariableDeclaration", "scope": 1048, "src": "4686:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1035, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4686:4:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4667:33:6"}, "returnParameters": {"id": 1039, "nodeType": "ParameterList", "parameters": [], "src": "4725:0:6"}, "scope": 1628, "src": "4641:153:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [1761], "body": {"id": 1065, "nodeType": "Block", "src": "4963:59:6", "statements": [{"expression": {"baseExpression": {"baseExpression": {"id": 1059, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4980:18:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))"}}, "id": 1061, "indexExpression": {"id": 1060, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1051, "src": "4999:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4980:25:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}}, "id": 1063, "indexExpression": {"id": 1062, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1053, "src": "5006:8:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4980:35:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 1058, "id": 1064, "nodeType": "Return", "src": "4973:42:6"}]}, "documentation": {"id": 1049, "nodeType": "StructuredDocumentation", "src": "4800:55:6", "text": " @dev See {IERC721-isApprovedForAll}."}, "functionSelector": "e985e9c5", "id": 1066, "implemented": true, "kind": "function", "modifiers": [], "name": "isApprovedForAll", "nameLocation": "4869:16:6", "nodeType": "FunctionDefinition", "overrides": {"id": 1055, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4939:8:6"}, "parameters": {"id": 1054, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1051, "mutability": "mutable", "name": "owner", "nameLocation": "4894:5:6", "nodeType": "VariableDeclaration", "scope": 1066, "src": "4886:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1050, "name": "address", "nodeType": "ElementaryTypeName", "src": "4886:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1053, "mutability": "mutable", "name": "operator", "nameLocation": "4909:8:6", "nodeType": "VariableDeclaration", "scope": 1066, "src": "4901:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1052, "name": "address", "nodeType": "ElementaryTypeName", "src": "4901:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "4885:33:6"}, "returnParameters": {"id": 1058, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1057, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1066, "src": "4957:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1056, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4957:4:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4956:6:6"}, "scope": 1628, "src": "4860:162:6", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [1727], "body": {"id": 1092, "nodeType": "Block", "src": "5203:208:6", "statements": [{"expression": {"arguments": [{"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 1079, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "5292:10:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5292:12:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1081, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5306:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1078, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1223, "src": "5273:18:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)"}}, "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5273:41:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564", "id": 1083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5316:48:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b", "typeString": "literal_string \"ERC721: caller is not token owner nor approved\""}, "value": "ERC721: caller is not token owner nor approved"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b", "typeString": "literal_string \"ERC721: caller is not token owner nor approved\""}], "id": 1077, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5265:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1084, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5265:100:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1085, "nodeType": "ExpressionStatement", "src": "5265:100:6"}, {"expression": {"arguments": [{"id": 1087, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1069, "src": "5386:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1088, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1071, "src": "5392:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1089, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5396:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1086, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1468, "src": "5376:9:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1090, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5376:28:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1091, "nodeType": "ExpressionStatement", "src": "5376:28:6"}]}, "documentation": {"id": 1067, "nodeType": "StructuredDocumentation", "src": "5028:51:6", "text": " @dev See {IERC721-transferFrom}."}, "functionSelector": "23b872dd", "id": 1093, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "5093:12:6", "nodeType": "FunctionDefinition", "overrides": {"id": 1075, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5194:8:6"}, "parameters": {"id": 1074, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1069, "mutability": "mutable", "name": "from", "nameLocation": "5123:4:6", "nodeType": "VariableDeclaration", "scope": 1093, "src": "5115:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1068, "name": "address", "nodeType": "ElementaryTypeName", "src": "5115:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1071, "mutability": "mutable", "name": "to", "nameLocation": "5145:2:6", "nodeType": "VariableDeclaration", "scope": 1093, "src": "5137:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1070, "name": "address", "nodeType": "ElementaryTypeName", "src": "5137:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1073, "mutability": "mutable", "name": "tokenId", "nameLocation": "5165:7:6", "nodeType": "VariableDeclaration", "scope": 1093, "src": "5157:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1072, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5157:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5105:73:6"}, "returnParameters": {"id": 1076, "nodeType": "ParameterList", "parameters": [], "src": "5203:0:6"}, "scope": 1628, "src": "5084:327:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [1717], "body": {"id": 1111, "nodeType": "Block", "src": "5600:56:6", "statements": [{"expression": {"arguments": [{"id": 1105, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1096, "src": "5627:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1106, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1098, "src": "5633:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1107, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1100, "src": "5637:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"hexValue": "", "id": 1108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5646:2:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}], "id": 1104, "name": "safeTransferFrom", "nodeType": "Identifier", "overloadedDeclarations": [1112, 1142], "referencedDeclaration": 1142, "src": "5610:16:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)"}}, "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5610:39:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1110, "nodeType": "ExpressionStatement", "src": "5610:39:6"}]}, "documentation": {"id": 1094, "nodeType": "StructuredDocumentation", "src": "5417:55:6", "text": " @dev See {IERC721-safeTransferFrom}."}, "functionSelector": "42842e0e", "id": 1112, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "5486:16:6", "nodeType": "FunctionDefinition", "overrides": {"id": 1102, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5591:8:6"}, "parameters": {"id": 1101, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1096, "mutability": "mutable", "name": "from", "nameLocation": "5520:4:6", "nodeType": "VariableDeclaration", "scope": 1112, "src": "5512:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1095, "name": "address", "nodeType": "ElementaryTypeName", "src": "5512:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1098, "mutability": "mutable", "name": "to", "nameLocation": "5542:2:6", "nodeType": "VariableDeclaration", "scope": 1112, "src": "5534:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1097, "name": "address", "nodeType": "ElementaryTypeName", "src": "5534:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1100, "mutability": "mutable", "name": "tokenId", "nameLocation": "5562:7:6", "nodeType": "VariableDeclaration", "scope": 1112, "src": "5554:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1099, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5554:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5502:73:6"}, "returnParameters": {"id": 1103, "nodeType": "ParameterList", "parameters": [], "src": "5600:0:6"}, "scope": 1628, "src": "5477:179:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [1707], "body": {"id": 1141, "nodeType": "Block", "src": "5872:165:6", "statements": [{"expression": {"arguments": [{"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 1127, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "5909:10:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 1128, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5909:12:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1129, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1119, "src": "5923:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1126, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1223, "src": "5890:18:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)"}}, "id": 1130, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5890:41:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564", "id": 1131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5933:48:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b", "typeString": "literal_string \"ERC721: caller is not token owner nor approved\""}, "value": "ERC721: caller is not token owner nor approved"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b", "typeString": "literal_string \"ERC721: caller is not token owner nor approved\""}], "id": 1125, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5882:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5882:100:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1133, "nodeType": "ExpressionStatement", "src": "5882:100:6"}, {"expression": {"arguments": [{"id": 1135, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1115, "src": "6006:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1136, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1117, "src": "6012:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1137, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1119, "src": "6016:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 1138, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1121, "src": "6025:4:6", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 1134, "name": "_safeTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "5992:13:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)"}}, "id": 1139, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5992:38:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1140, "nodeType": "ExpressionStatement", "src": "5992:38:6"}]}, "documentation": {"id": 1113, "nodeType": "StructuredDocumentation", "src": "5662:55:6", "text": " @dev See {IERC721-safeTransferFrom}."}, "functionSelector": "b88d4fde", "id": 1142, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "5731:16:6", "nodeType": "FunctionDefinition", "overrides": {"id": 1123, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5863:8:6"}, "parameters": {"id": 1122, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1115, "mutability": "mutable", "name": "from", "nameLocation": "5765:4:6", "nodeType": "VariableDeclaration", "scope": 1142, "src": "5757:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1114, "name": "address", "nodeType": "ElementaryTypeName", "src": "5757:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1117, "mutability": "mutable", "name": "to", "nameLocation": "5787:2:6", "nodeType": "VariableDeclaration", "scope": 1142, "src": "5779:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1116, "name": "address", "nodeType": "ElementaryTypeName", "src": "5779:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1119, "mutability": "mutable", "name": "tokenId", "nameLocation": "5807:7:6", "nodeType": "VariableDeclaration", "scope": 1142, "src": "5799:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1118, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5799:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 1121, "mutability": "mutable", "name": "data", "nameLocation": "5837:4:6", "nodeType": "VariableDeclaration", "scope": 1142, "src": "5824:17:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 1120, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5824:5:6", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "5747:100:6"}, "returnParameters": {"id": 1124, "nodeType": "ParameterList", "parameters": [], "src": "5872:0:6"}, "scope": 1628, "src": "5722:315:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"body": {"id": 1170, "nodeType": "Block", "src": "7038:165:6", "statements": [{"expression": {"arguments": [{"id": 1155, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1145, "src": "7058:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1156, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "7064:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1157, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1149, "src": "7068:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1154, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1468, "src": "7048:9:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7048:28:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1159, "nodeType": "ExpressionStatement", "src": "7048:28:6"}, {"expression": {"arguments": [{"arguments": [{"id": 1162, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1145, "src": "7117:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1163, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "7123:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1164, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1149, "src": "7127:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 1165, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1151, "src": "7136:4:6", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 1161, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1600, "src": "7094:22:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)"}}, "id": 1166, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7094:47:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", "id": 1167, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7143:52:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}, "value": "ERC721: transfer to non ERC721Receiver implementer"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}], "id": 1160, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "7086:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1168, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7086:110:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1169, "nodeType": "ExpressionStatement", "src": "7086:110:6"}]}, "documentation": {"id": 1143, "nodeType": "StructuredDocumentation", "src": "6043:850:6", "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."}, "id": 1171, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeTransfer", "nameLocation": "6907:13:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1152, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1145, "mutability": "mutable", "name": "from", "nameLocation": "6938:4:6", "nodeType": "VariableDeclaration", "scope": 1171, "src": "6930:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1144, "name": "address", "nodeType": "ElementaryTypeName", "src": "6930:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1147, "mutability": "mutable", "name": "to", "nameLocation": "6960:2:6", "nodeType": "VariableDeclaration", "scope": 1171, "src": "6952:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1146, "name": "address", "nodeType": "ElementaryTypeName", "src": "6952:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1149, "mutability": "mutable", "name": "tokenId", "nameLocation": "6980:7:6", "nodeType": "VariableDeclaration", "scope": 1171, "src": "6972:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1148, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6972:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 1151, "mutability": "mutable", "name": "data", "nameLocation": "7010:4:6", "nodeType": "VariableDeclaration", "scope": 1171, "src": "6997:17:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 1150, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6997:5:6", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "6920:100:6"}, "returnParameters": {"id": 1153, "nodeType": "ParameterList", "parameters": [], "src": "7038:0:6"}, "scope": 1628, "src": "6898:305:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 1188, "nodeType": "Block", "src": "7577:54:6", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 1186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"baseExpression": {"id": 1179, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 771, "src": "7594:7:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 1181, "indexExpression": {"id": 1180, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1174, "src": "7602:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7594:16:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 1184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7622:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1183, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7614:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1182, "name": "address", "nodeType": "ElementaryTypeName", "src": "7614:7:6", "typeDescriptions": {}}}, "id": 1185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7614:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "7594:30:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 1178, "id": 1187, "nodeType": "Return", "src": "7587:37:6"}]}, "documentation": {"id": 1172, "nodeType": "StructuredDocumentation", "src": "7209:292:6", "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."}, "id": 1189, "implemented": true, "kind": "function", "modifiers": [], "name": "_exists", "nameLocation": "7515:7:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1175, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1174, "mutability": "mutable", "name": "tokenId", "nameLocation": "7531:7:6", "nodeType": "VariableDeclaration", "scope": 1189, "src": "7523:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1173, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7523:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "7522:17:6"}, "returnParameters": {"id": 1178, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1177, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1189, "src": "7571:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1176, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7571:4:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "7570:6:6"}, "scope": 1628, "src": "7506:125:6", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 1222, "nodeType": "Block", "src": "7888:173:6", "statements": [{"assignments": [1200], "declarations": [{"constant": false, "id": 1200, "mutability": "mutable", "name": "owner", "nameLocation": "7906:5:6", "nodeType": "VariableDeclaration", "scope": 1222, "src": "7898:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1199, "name": "address", "nodeType": "ElementaryTypeName", "src": "7898:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 1205, "initialValue": {"arguments": [{"id": 1203, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1194, "src": "7940:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 1201, "name": "ERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1628, "src": "7914:17:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$1628_$", "typeString": "type(contract ERC721Upgradeable)"}}, "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7932:7:6", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 902, "src": "7914:25:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7914:34:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "7898:50:6"}, {"expression": {"components": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 1219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 1213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 1208, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 1206, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1192, "src": "7966:7:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 1207, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1200, "src": "7977:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "7966:16:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"arguments": [{"id": 1210, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1200, "src": "8003:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1211, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1192, "src": "8010:7:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 1209, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1066, "src": "7986:16:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)"}}, "id": 1212, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7986:32:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "7966:52:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"id": 1215, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1194, "src": "8034:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1214, "name": "getApproved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1031, "src": "8022:11:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 1216, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8022:20:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 1217, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1192, "src": "8046:7:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "8022:31:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "7966:87:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 1220, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "7965:89:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 1198, "id": 1221, "nodeType": "Return", "src": "7958:96:6"}]}, "documentation": {"id": 1190, "nodeType": "StructuredDocumentation", "src": "7637:147:6", "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."}, "id": 1223, "implemented": true, "kind": "function", "modifiers": [], "name": "_isApprovedOrOwner", "nameLocation": "7798:18:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1195, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1192, "mutability": "mutable", "name": "spender", "nameLocation": "7825:7:6", "nodeType": "VariableDeclaration", "scope": 1223, "src": "7817:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1191, "name": "address", "nodeType": "ElementaryTypeName", "src": "7817:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1194, "mutability": "mutable", "name": "tokenId", "nameLocation": "7842:7:6", "nodeType": "VariableDeclaration", "scope": 1223, "src": "7834:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1193, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7834:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "7816:34:6"}, "returnParameters": {"id": 1198, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1197, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1223, "src": "7882:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1196, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7882:4:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "7881:6:6"}, "scope": 1628, "src": "7789:272:6", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 1237, "nodeType": "Block", "src": "8456:43:6", "statements": [{"expression": {"arguments": [{"id": 1232, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1226, "src": "8476:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1233, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1228, "src": "8480:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"hexValue": "", "id": 1234, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8489:2:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}], "id": 1231, "name": "_safeMint", "nodeType": "Identifier", "overloadedDeclarations": [1238, 1267], "referencedDeclaration": 1267, "src": "8466:9:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes memory)"}}, "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8466:26:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1236, "nodeType": "ExpressionStatement", "src": "8466:26:6"}]}, "documentation": {"id": 1224, "nodeType": "StructuredDocumentation", "src": "8067:319:6", "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."}, "id": 1238, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeMint", "nameLocation": "8400:9:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1229, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1226, "mutability": "mutable", "name": "to", "nameLocation": "8418:2:6", "nodeType": "VariableDeclaration", "scope": 1238, "src": "8410:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1225, "name": "address", "nodeType": "ElementaryTypeName", "src": "8410:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1228, "mutability": "mutable", "name": "tokenId", "nameLocation": "8430:7:6", "nodeType": "VariableDeclaration", "scope": 1238, "src": "8422:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1227, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8422:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "8409:29:6"}, "returnParameters": {"id": 1230, "nodeType": "ParameterList", "parameters": [], "src": "8456:0:6"}, "scope": 1628, "src": "8391:108:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 1266, "nodeType": "Block", "src": "8834:195:6", "statements": [{"expression": {"arguments": [{"id": 1249, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1241, "src": "8850:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1250, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1243, "src": "8854:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1248, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1333, "src": "8844:5:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8844:18:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1252, "nodeType": "ExpressionStatement", "src": "8844:18:6"}, {"expression": {"arguments": [{"arguments": [{"arguments": [{"hexValue": "30", "id": 1257, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8924:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1256, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8916:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1255, "name": "address", "nodeType": "ElementaryTypeName", "src": "8916:7:6", "typeDescriptions": {}}}, "id": 1258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8916:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1259, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1241, "src": "8928:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1260, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1243, "src": "8932:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 1261, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1245, "src": "8941:4:6", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 1254, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1600, "src": "8893:22:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)"}}, "id": 1262, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8893:53:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", "id": 1263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8960:52:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}, "value": "ERC721: transfer to non ERC721Receiver implementer"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}], "id": 1253, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "8872:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1264, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8872:150:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1265, "nodeType": "ExpressionStatement", "src": "8872:150:6"}]}, "documentation": {"id": 1239, "nodeType": "StructuredDocumentation", "src": "8505:210:6", "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."}, "id": 1267, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeMint", "nameLocation": "8729:9:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1246, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1241, "mutability": "mutable", "name": "to", "nameLocation": "8756:2:6", "nodeType": "VariableDeclaration", "scope": 1267, "src": "8748:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1240, "name": "address", "nodeType": "ElementaryTypeName", "src": "8748:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1243, "mutability": "mutable", "name": "tokenId", "nameLocation": "8776:7:6", "nodeType": "VariableDeclaration", "scope": 1267, "src": "8768:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1242, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8768:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 1245, "mutability": "mutable", "name": "data", "nameLocation": "8806:4:6", "nodeType": "VariableDeclaration", "scope": 1267, "src": "8793:17:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 1244, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8793:5:6", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "8738:78:6"}, "returnParameters": {"id": 1247, "nodeType": "ParameterList", "parameters": [], "src": "8834:0:6"}, "scope": 1628, "src": "8720:309:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 1332, "nodeType": "Block", "src": "9412:366:6", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 1281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 1276, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1270, "src": "9430:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 1279, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9444:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1278, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9436:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1277, "name": "address", "nodeType": "ElementaryTypeName", "src": "9436:7:6", "typeDescriptions": {}}}, "id": 1280, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9436:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "9430:16:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", "id": 1282, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9448:34:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", "typeString": "literal_string \"ERC721: mint to the zero address\""}, "value": "ERC721: mint to the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", "typeString": "literal_string \"ERC721: mint to the zero address\""}], "id": 1275, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "9422:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1283, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9422:61:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1284, "nodeType": "ExpressionStatement", "src": "9422:61:6"}, {"expression": {"arguments": [{"id": 1289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "9501:17:6", "subExpression": {"arguments": [{"id": 1287, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1272, "src": "9510:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1286, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1189, "src": "9502:7:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)"}}, "id": 1288, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9502:16:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", "id": 1290, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9520:30:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", "typeString": "literal_string \"ERC721: token already minted\""}, "value": "ERC721: token already minted"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", "typeString": "literal_string \"ERC721: token already minted\""}], "id": 1285, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "9493:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1291, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9493:58:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1292, "nodeType": "ExpressionStatement", "src": "9493:58:6"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 1296, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9591:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1295, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9583:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1294, "name": "address", "nodeType": "ElementaryTypeName", "src": "9583:7:6", "typeDescriptions": {}}}, "id": 1297, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9583:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1298, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1270, "src": "9595:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1299, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1272, "src": "9599:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1293, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1611, "src": "9562:20:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1300, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9562:45:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1301, "nodeType": "ExpressionStatement", "src": "9562:45:6"}, {"expression": {"id": 1306, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 1302, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 775, "src": "9618:9:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 1304, "indexExpression": {"id": 1303, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1270, "src": "9628:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9618:13:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"hexValue": "31", "id": 1305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9635:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "9618:18:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 1307, "nodeType": "ExpressionStatement", "src": "9618:18:6"}, {"expression": {"id": 1312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 1308, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 771, "src": "9646:7:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 1310, "indexExpression": {"id": 1309, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1272, "src": "9654:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9646:16:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 1311, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1270, "src": "9665:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "9646:21:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 1313, "nodeType": "ExpressionStatement", "src": "9646:21:6"}, {"eventCall": {"arguments": [{"arguments": [{"hexValue": "30", "id": 1317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9700:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1316, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9692:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1315, "name": "address", "nodeType": "ElementaryTypeName", "src": "9692:7:6", "typeDescriptions": {}}}, "id": 1318, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9692:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1319, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1270, "src": "9704:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1320, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1272, "src": "9708:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1314, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1661, "src": "9683:8:6", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1321, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9683:33:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1322, "nodeType": "EmitStatement", "src": "9678:38:6"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 1326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9755:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1325, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9747:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1324, "name": "address", "nodeType": "ElementaryTypeName", "src": "9747:7:6", "typeDescriptions": {}}}, "id": 1327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9747:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1328, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1270, "src": "9759:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1329, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1272, "src": "9763:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1323, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1622, "src": "9727:19:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1330, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9727:44:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1331, "nodeType": "ExpressionStatement", "src": "9727:44:6"}]}, "documentation": {"id": 1268, "nodeType": "StructuredDocumentation", "src": "9035:311:6", "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."}, "id": 1333, "implemented": true, "kind": "function", "modifiers": [], "name": "_mint", "nameLocation": "9360:5:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1273, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1270, "mutability": "mutable", "name": "to", "nameLocation": "9374:2:6", "nodeType": "VariableDeclaration", "scope": 1333, "src": "9366:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1269, "name": "address", "nodeType": "ElementaryTypeName", "src": "9366:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1272, "mutability": "mutable", "name": "tokenId", "nameLocation": "9386:7:6", "nodeType": "VariableDeclaration", "scope": 1333, "src": "9378:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1271, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9378:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "9365:29:6"}, "returnParameters": {"id": 1274, "nodeType": "ParameterList", "parameters": [], "src": "9412:0:6"}, "scope": 1628, "src": "9351:427:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 1392, "nodeType": "Block", "src": "10044:368:6", "statements": [{"assignments": [1340], "declarations": [{"constant": false, "id": 1340, "mutability": "mutable", "name": "owner", "nameLocation": "10062:5:6", "nodeType": "VariableDeclaration", "scope": 1392, "src": "10054:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1339, "name": "address", "nodeType": "ElementaryTypeName", "src": "10054:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 1345, "initialValue": {"arguments": [{"id": 1343, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1336, "src": "10096:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 1341, "name": "ERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1628, "src": "10070:17:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$1628_$", "typeString": "type(contract ERC721Upgradeable)"}}, "id": 1342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10088:7:6", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 902, "src": "10070:25:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 1344, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10070:34:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "10054:50:6"}, {"expression": {"arguments": [{"id": 1347, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "10136:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"hexValue": "30", "id": 1350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10151:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1349, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10143:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1348, "name": "address", "nodeType": "ElementaryTypeName", "src": "10143:7:6", "typeDescriptions": {}}}, "id": 1351, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10143:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1352, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1336, "src": "10155:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1346, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1611, "src": "10115:20:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1353, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10115:48:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1354, "nodeType": "ExpressionStatement", "src": "10115:48:6"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 1358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10218:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1357, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10210:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1356, "name": "address", "nodeType": "ElementaryTypeName", "src": "10210:7:6", "typeDescriptions": {}}}, "id": 1359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10210:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1360, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1336, "src": "10222:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1355, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1492, "src": "10201:8:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 1361, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10201:29:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1362, "nodeType": "ExpressionStatement", "src": "10201:29:6"}, {"expression": {"id": 1367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 1363, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 775, "src": "10241:9:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 1365, "indexExpression": {"id": 1364, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "10251:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10241:16:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"hexValue": "31", "id": 1366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10261:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "10241:21:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 1368, "nodeType": "ExpressionStatement", "src": "10241:21:6"}, {"expression": {"id": 1372, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "10272:23:6", "subExpression": {"baseExpression": {"id": 1369, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 771, "src": "10279:7:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 1371, "indexExpression": {"id": 1370, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1336, "src": "10287:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10279:16:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1373, "nodeType": "ExpressionStatement", "src": "10272:23:6"}, {"eventCall": {"arguments": [{"id": 1375, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "10320:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"hexValue": "30", "id": 1378, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10335:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1377, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10327:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1376, "name": "address", "nodeType": "ElementaryTypeName", "src": "10327:7:6", "typeDescriptions": {}}}, "id": 1379, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10327:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1380, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1336, "src": "10339:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1374, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1661, "src": "10311:8:6", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10311:36:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1382, "nodeType": "EmitStatement", "src": "10306:41:6"}, {"expression": {"arguments": [{"id": 1384, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "10378:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"hexValue": "30", "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10393:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1386, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10385:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1385, "name": "address", "nodeType": "ElementaryTypeName", "src": "10385:7:6", "typeDescriptions": {}}}, "id": 1388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10385:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1389, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1336, "src": "10397:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1383, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1622, "src": "10358:19:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10358:47:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1391, "nodeType": "ExpressionStatement", "src": "10358:47:6"}]}, "documentation": {"id": 1334, "nodeType": "StructuredDocumentation", "src": "9784:206:6", "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."}, "id": 1393, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nameLocation": "10004:5:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1337, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1336, "mutability": "mutable", "name": "tokenId", "nameLocation": "10018:7:6", "nodeType": "VariableDeclaration", "scope": 1393, "src": "10010:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1335, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10010:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "10009:17:6"}, "returnParameters": {"id": 1338, "nodeType": "ParameterList", "parameters": [], "src": "10044:0:6"}, "scope": 1628, "src": "9995:417:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 1467, "nodeType": "Block", "src": "10845:507:6", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 1409, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"id": 1406, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1400, "src": "10889:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 1404, "name": "ERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1628, "src": "10863:17:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$1628_$", "typeString": "type(contract ERC721Upgradeable)"}}, "id": 1405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10881:7:6", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 902, "src": "10863:25:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10863:34:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 1408, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1396, "src": "10901:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "10863:42:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572", "id": 1410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10907:39:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", "typeString": "literal_string \"ERC721: transfer from incorrect owner\""}, "value": "ERC721: transfer from incorrect owner"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", "typeString": "literal_string \"ERC721: transfer from incorrect owner\""}], "id": 1403, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "10855:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10855:92:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1412, "nodeType": "ExpressionStatement", "src": "10855:92:6"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 1414, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "10965:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 1417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10979:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1416, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10971:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1415, "name": "address", "nodeType": "ElementaryTypeName", "src": "10971:7:6", "typeDescriptions": {}}}, "id": 1418, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10971:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "10965:16:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", "id": 1420, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10983:38:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", "typeString": "literal_string \"ERC721: transfer to the zero address\""}, "value": "ERC721: transfer to the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", "typeString": "literal_string \"ERC721: transfer to the zero address\""}], "id": 1413, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "10957:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1421, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10957:65:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1422, "nodeType": "ExpressionStatement", "src": "10957:65:6"}, {"expression": {"arguments": [{"id": 1424, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1396, "src": "11054:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1425, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "11060:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1426, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1400, "src": "11064:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1423, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1611, "src": "11033:20:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11033:39:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1428, "nodeType": "ExpressionStatement", "src": "11033:39:6"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 1432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11151:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 1431, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "11143:7:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1430, "name": "address", "nodeType": "ElementaryTypeName", "src": "11143:7:6", "typeDescriptions": {}}}, "id": 1433, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11143:10:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1434, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1400, "src": "11155:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1429, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1492, "src": "11134:8:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 1435, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11134:29:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1436, "nodeType": "ExpressionStatement", "src": "11134:29:6"}, {"expression": {"id": 1441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 1437, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 775, "src": "11174:9:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 1439, "indexExpression": {"id": 1438, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1396, "src": "11184:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11174:15:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"hexValue": "31", "id": 1440, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11193:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "11174:20:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 1442, "nodeType": "ExpressionStatement", "src": "11174:20:6"}, {"expression": {"id": 1447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 1443, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 775, "src": "11204:9:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 1445, "indexExpression": {"id": 1444, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "11214:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11204:13:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"hexValue": "31", "id": 1446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11221:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "11204:18:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 1448, "nodeType": "ExpressionStatement", "src": "11204:18:6"}, {"expression": {"id": 1453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 1449, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 771, "src": "11232:7:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 1451, "indexExpression": {"id": 1450, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1400, "src": "11240:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11232:16:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 1452, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "11251:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "11232:21:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 1454, "nodeType": "ExpressionStatement", "src": "11232:21:6"}, {"eventCall": {"arguments": [{"id": 1456, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1396, "src": "11278:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1457, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "11284:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1458, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1400, "src": "11288:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1455, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1661, "src": "11269:8:6", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1459, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11269:27:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1460, "nodeType": "EmitStatement", "src": "11264:32:6"}, {"expression": {"arguments": [{"id": 1462, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1396, "src": "11327:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1463, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "11333:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1464, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1400, "src": "11337:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1461, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1622, "src": "11307:19:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11307:38:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1466, "nodeType": "ExpressionStatement", "src": "11307:38:6"}]}, "documentation": {"id": 1394, "nodeType": "StructuredDocumentation", "src": "10418:313:6", "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."}, "id": 1468, "implemented": true, "kind": "function", "modifiers": [], "name": "_transfer", "nameLocation": "10745:9:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1401, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1396, "mutability": "mutable", "name": "from", "nameLocation": "10772:4:6", "nodeType": "VariableDeclaration", "scope": 1468, "src": "10764:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1395, "name": "address", "nodeType": "ElementaryTypeName", "src": "10764:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1398, "mutability": "mutable", "name": "to", "nameLocation": "10794:2:6", "nodeType": "VariableDeclaration", "scope": 1468, "src": "10786:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1397, "name": "address", "nodeType": "ElementaryTypeName", "src": "10786:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1400, "mutability": "mutable", "name": "tokenId", "nameLocation": "10814:7:6", "nodeType": "VariableDeclaration", "scope": 1468, "src": "10806:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1399, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10806:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "10754:73:6"}, "returnParameters": {"id": 1402, "nodeType": "ParameterList", "parameters": [], "src": "10845:0:6"}, "scope": 1628, "src": "10736:616:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 1491, "nodeType": "Block", "src": "11528:118:6", "statements": [{"expression": {"id": 1480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 1476, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 779, "src": "11538:15:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 1478, "indexExpression": {"id": 1477, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1473, "src": "11554:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11538:24:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 1479, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1471, "src": "11565:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "11538:29:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 1481, "nodeType": "ExpressionStatement", "src": "11538:29:6"}, {"eventCall": {"arguments": [{"arguments": [{"id": 1485, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1473, "src": "11617:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 1483, "name": "ERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1628, "src": "11591:17:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721Upgradeable_$1628_$", "typeString": "type(contract ERC721Upgradeable)"}}, "id": 1484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "11609:7:6", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 902, "src": "11591:25:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 1486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11591:34:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1487, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1471, "src": "11627:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1488, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1473, "src": "11631:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1482, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1670, "src": "11582:8:6", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 1489, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11582:57:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1490, "nodeType": "EmitStatement", "src": "11577:62:6"}]}, "documentation": {"id": 1469, "nodeType": "StructuredDocumentation", "src": "11358:101:6", "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."}, "id": 1492, "implemented": true, "kind": "function", "modifiers": [], "name": "_approve", "nameLocation": "11473:8:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1474, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1471, "mutability": "mutable", "name": "to", "nameLocation": "11490:2:6", "nodeType": "VariableDeclaration", "scope": 1492, "src": "11482:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1470, "name": "address", "nodeType": "ElementaryTypeName", "src": "11482:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1473, "mutability": "mutable", "name": "tokenId", "nameLocation": "11502:7:6", "nodeType": "VariableDeclaration", "scope": 1492, "src": "11494:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1472, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11494:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "11481:29:6"}, "returnParameters": {"id": 1475, "nodeType": "ParameterList", "parameters": [], "src": "11528:0:6"}, "scope": 1628, "src": "11464:182:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 1523, "nodeType": "Block", "src": "11905:184:6", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 1505, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 1503, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1495, "src": "11923:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"id": 1504, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1497, "src": "11932:8:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "11923:17:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", "id": 1506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11942:27:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", "typeString": "literal_string \"ERC721: approve to caller\""}, "value": "ERC721: approve to caller"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", "typeString": "literal_string \"ERC721: approve to caller\""}], "id": 1502, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "11915:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1507, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11915:55:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1508, "nodeType": "ExpressionStatement", "src": "11915:55:6"}, {"expression": {"id": 1515, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"baseExpression": {"id": 1509, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "11980:18:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))"}}, "id": 1512, "indexExpression": {"id": 1510, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1495, "src": "11999:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11980:25:6", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}}, "id": 1513, "indexExpression": {"id": 1511, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1497, "src": "12006:8:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11980:35:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 1514, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1499, "src": "12018:8:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "11980:46:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 1516, "nodeType": "ExpressionStatement", "src": "11980:46:6"}, {"eventCall": {"arguments": [{"id": 1518, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1495, "src": "12056:5:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1519, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1497, "src": "12063:8:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1520, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1499, "src": "12073:8:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 1517, "name": "ApprovalForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1679, "src": "12041:14:6", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)"}}, "id": 1521, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12041:41:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1522, "nodeType": "EmitStatement", "src": "12036:46:6"}]}, "documentation": {"id": 1493, "nodeType": "StructuredDocumentation", "src": "11652:125:6", "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."}, "id": 1524, "implemented": true, "kind": "function", "modifiers": [], "name": "_setApprovalForAll", "nameLocation": "11791:18:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1500, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1495, "mutability": "mutable", "name": "owner", "nameLocation": "11827:5:6", "nodeType": "VariableDeclaration", "scope": 1524, "src": "11819:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1494, "name": "address", "nodeType": "ElementaryTypeName", "src": "11819:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1497, "mutability": "mutable", "name": "operator", "nameLocation": "11850:8:6", "nodeType": "VariableDeclaration", "scope": 1524, "src": "11842:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1496, "name": "address", "nodeType": "ElementaryTypeName", "src": "11842:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1499, "mutability": "mutable", "name": "approved", "nameLocation": "11873:8:6", "nodeType": "VariableDeclaration", "scope": 1524, "src": "11868:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1498, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11868:4:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "11809:78:6"}, "returnParameters": {"id": 1501, "nodeType": "ParameterList", "parameters": [], "src": "11905:0:6"}, "scope": 1628, "src": "11782:307:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 1537, "nodeType": "Block", "src": "12236:70:6", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 1532, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "12262:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1531, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1189, "src": "12254:7:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)"}}, "id": 1533, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12254:16:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20696e76616c696420746f6b656e204944", "id": 1534, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12272:26:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\""}, "value": "ERC721: invalid token ID"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\""}], "id": 1530, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "12246:7:6", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1535, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12246:53:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1536, "nodeType": "ExpressionStatement", "src": "12246:53:6"}]}, "documentation": {"id": 1525, "nodeType": "StructuredDocumentation", "src": "12095:73:6", "text": " @dev Reverts if the `tokenId` has not been minted yet."}, "id": 1538, "implemented": true, "kind": "function", "modifiers": [], "name": "_requireMinted", "nameLocation": "12182:14:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1528, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1527, "mutability": "mutable", "name": "tokenId", "nameLocation": "12205:7:6", "nodeType": "VariableDeclaration", "scope": 1538, "src": "12197:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1526, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12197:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "12196:17:6"}, "returnParameters": {"id": 1529, "nodeType": "ParameterList", "parameters": [], "src": "12236:0:6"}, "scope": 1628, "src": "12173:133:6", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 1599, "nodeType": "Block", "src": "13013:698:6", "statements": [{"condition": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 1552, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1543, "src": "13027:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 1553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "13030:10:6", "memberName": "isContract", "nodeType": "MemberAccess", "referencedDeclaration": 1952, "src": "13027:13:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", "typeString": "function (address) view returns (bool)"}}, "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13027:15:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 1597, "nodeType": "Block", "src": "13669:36:6", "statements": [{"expression": {"hexValue": "74727565", "id": 1595, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "13690:4:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "functionReturnParameters": 1551, "id": 1596, "nodeType": "Return", "src": "13683:11:6"}]}, "id": 1598, "nodeType": "IfStatement", "src": "13023:682:6", "trueBody": {"id": 1594, "nodeType": "Block", "src": "13044:619:6", "statements": [{"clauses": [{"block": {"id": 1574, "nodeType": "Block", "src": "13169:102:6", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "id": 1572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 1568, "name": "retval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1566, "src": "13194:6:6", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"expression": {"id": 1569, "name": "IERC721ReceiverUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1646, "src": "13204:26:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721ReceiverUpgradeable_$1646_$", "typeString": "type(contract IERC721ReceiverUpgradeable)"}}, "id": 1570, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "13231:16:6", "memberName": "onERC721Received", "nodeType": "MemberAccess", "referencedDeclaration": 1645, "src": "13204:43:6", "typeDescriptions": {"typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", "typeString": "function IERC721ReceiverUpgradeable.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}}, "id": 1571, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "13248:8:6", "memberName": "selector", "nodeType": "MemberAccess", "src": "13204:52:6", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "src": "13194:62:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 1551, "id": 1573, "nodeType": "Return", "src": "13187:69:6"}]}, "errorName": "", "id": 1575, "nodeType": "TryCatchClause", "parameters": {"id": 1567, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1566, "mutability": "mutable", "name": "retval", "nameLocation": "13161:6:6", "nodeType": "VariableDeclaration", "scope": 1575, "src": "13154:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 1565, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "13154:6:6", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "13153:15:6"}, "src": "13145:126:6"}, {"block": {"id": 1591, "nodeType": "Block", "src": "13300:353:6", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 1582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 1579, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1577, "src": "13322:6:6", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 1580, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "13329:6:6", "memberName": "length", "nodeType": "MemberAccess", "src": "13322:13:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 1581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13339:1:6", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "13322:18:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 1589, "nodeType": "Block", "src": "13449:190:6", "statements": [{"AST": {"nodeType": "YulBlock", "src": "13535:86:6", "statements": [{"expression": {"arguments": [{"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "13572:2:6", "type": "", "value": "32"}, {"name": "reason", "nodeType": "YulIdentifier", "src": "13576:6:6"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "13568:3:6"}, "nodeType": "YulFunctionCall", "src": "13568:15:6"}, {"arguments": [{"name": "reason", "nodeType": "YulIdentifier", "src": "13591:6:6"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "13585:5:6"}, "nodeType": "YulFunctionCall", "src": "13585:13:6"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "13561:6:6"}, "nodeType": "YulFunctionCall", "src": "13561:38:6"}, "nodeType": "YulExpressionStatement", "src": "13561:38:6"}]}, "documentation": "@solidity memory-safe-assembly", "evmVersion": "london", "externalReferences": [{"declaration": 1577, "isOffset": false, "isSlot": false, "src": "13576:6:6", "valueSize": 1}, {"declaration": 1577, "isOffset": false, "isSlot": false, "src": "13591:6:6", "valueSize": 1}], "id": 1588, "nodeType": "InlineAssembly", "src": "13526:95:6"}]}, "id": 1590, "nodeType": "IfStatement", "src": "13318:321:6", "trueBody": {"id": 1587, "nodeType": "Block", "src": "13342:101:6", "statements": [{"expression": {"arguments": [{"hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", "id": 1584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13371:52:6", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}, "value": "ERC721: transfer to non ERC721Receiver implementer"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}], "id": 1583, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [-19, -19], "referencedDeclaration": -19, "src": "13364:6:6", "typeDescriptions": {"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure"}}, "id": 1585, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13364:60:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1586, "nodeType": "ExpressionStatement", "src": "13364:60:6"}]}}]}, "errorName": "", "id": 1592, "nodeType": "TryCatchClause", "parameters": {"id": 1578, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1577, "mutability": "mutable", "name": "reason", "nameLocation": "13292:6:6", "nodeType": "VariableDeclaration", "scope": 1592, "src": "13279:19:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 1576, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "13279:5:6", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "13278:21:6"}, "src": "13272:381:6"}], "externalCall": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 1559, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "13110:10:6", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 1560, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13110:12:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1561, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1541, "src": "13124:4:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1562, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1545, "src": "13130:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 1563, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1547, "src": "13139:4:6", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"arguments": [{"id": 1556, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1543, "src": "13089:2:6", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 1555, "name": "IERC721ReceiverUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1646, "src": "13062:26:6", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721ReceiverUpgradeable_$1646_$", "typeString": "type(contract IERC721ReceiverUpgradeable)"}}, "id": 1557, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13062:30:6", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC721ReceiverUpgradeable_$1646", "typeString": "contract IERC721ReceiverUpgradeable"}}, "id": 1558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "13093:16:6", "memberName": "onERC721Received", "nodeType": "MemberAccess", "referencedDeclaration": 1645, "src": "13062:47:6", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)"}}, "id": 1564, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13062:82:6", "tryCall": true, "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "id": 1593, "nodeType": "TryStatement", "src": "13058:595:6"}]}}]}, "documentation": {"id": 1539, "nodeType": "StructuredDocumentation", "src": "12312:541:6", "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"}, "id": 1600, "implemented": true, "kind": "function", "modifiers": [], "name": "_checkOnERC721Received", "nameLocation": "12867:22:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1548, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1541, "mutability": "mutable", "name": "from", "nameLocation": "12907:4:6", "nodeType": "VariableDeclaration", "scope": 1600, "src": "12899:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1540, "name": "address", "nodeType": "ElementaryTypeName", "src": "12899:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1543, "mutability": "mutable", "name": "to", "nameLocation": "12929:2:6", "nodeType": "VariableDeclaration", "scope": 1600, "src": "12921:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1542, "name": "address", "nodeType": "ElementaryTypeName", "src": "12921:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1545, "mutability": "mutable", "name": "tokenId", "nameLocation": "12949:7:6", "nodeType": "VariableDeclaration", "scope": 1600, "src": "12941:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1544, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12941:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 1547, "mutability": "mutable", "name": "data", "nameLocation": "12979:4:6", "nodeType": "VariableDeclaration", "scope": 1600, "src": "12966:17:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 1546, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12966:5:6", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "12889:100:6"}, "returnParameters": {"id": 1551, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1550, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1600, "src": "13007:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1549, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13007:4:6", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "13006:6:6"}, "scope": 1628, "src": "12858:853:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "private"}, {"body": {"id": 1610, "nodeType": "Block", "src": "14387:2:6", "statements": []}, "documentation": {"id": 1601, "nodeType": "StructuredDocumentation", "src": "13717:545:6", "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."}, "id": 1611, "implemented": true, "kind": "function", "modifiers": [], "name": "_beforeTokenTransfer", "nameLocation": "14276:20:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1608, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1603, "mutability": "mutable", "name": "from", "nameLocation": "14314:4:6", "nodeType": "VariableDeclaration", "scope": 1611, "src": "14306:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1602, "name": "address", "nodeType": "ElementaryTypeName", "src": "14306:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1605, "mutability": "mutable", "name": "to", "nameLocation": "14336:2:6", "nodeType": "VariableDeclaration", "scope": 1611, "src": "14328:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1604, "name": "address", "nodeType": "ElementaryTypeName", "src": "14328:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1607, "mutability": "mutable", "name": "tokenId", "nameLocation": "14356:7:6", "nodeType": "VariableDeclaration", "scope": 1611, "src": "14348:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1606, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14348:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "14296:73:6"}, "returnParameters": {"id": 1609, "nodeType": "ParameterList", "parameters": [], "src": "14387:0:6"}, "scope": 1628, "src": "14267:122:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 1621, "nodeType": "Block", "src": "14880:2:6", "statements": []}, "documentation": {"id": 1612, "nodeType": "StructuredDocumentation", "src": "14395:361:6", "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."}, "id": 1622, "implemented": true, "kind": "function", "modifiers": [], "name": "_afterTokenTransfer", "nameLocation": "14770:19:6", "nodeType": "FunctionDefinition", "parameters": {"id": 1619, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1614, "mutability": "mutable", "name": "from", "nameLocation": "14807:4:6", "nodeType": "VariableDeclaration", "scope": 1622, "src": "14799:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1613, "name": "address", "nodeType": "ElementaryTypeName", "src": "14799:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1616, "mutability": "mutable", "name": "to", "nameLocation": "14829:2:6", "nodeType": "VariableDeclaration", "scope": 1622, "src": "14821:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1615, "name": "address", "nodeType": "ElementaryTypeName", "src": "14821:7:6", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1618, "mutability": "mutable", "name": "tokenId", "nameLocation": "14849:7:6", "nodeType": "VariableDeclaration", "scope": 1622, "src": "14841:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1617, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14841:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "14789:73:6"}, "returnParameters": {"id": 1620, "nodeType": "ParameterList", "parameters": [], "src": "14880:0:6"}, "scope": 1628, "src": "14761:121:6", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"constant": false, "documentation": {"id": 1623, "nodeType": "StructuredDocumentation", "src": "14888:254:6", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}, "id": 1627, "mutability": "mutable", "name": "__gap", "nameLocation": "15167:5:6", "nodeType": "VariableDeclaration", "scope": 1628, "src": "15147:25:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$44_storage", "typeString": "uint256[44]"}, "typeName": {"baseType": {"id": 1624, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15147:7:6", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 1626, "length": {"hexValue": "3434", "id": 1625, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15155:2:6", "typeDescriptions": {"typeIdentifier": "t_rational_44_by_1", "typeString": "int_const 44"}, "value": "44"}, "nodeType": "ArrayTypeName", "src": "15147:11:6", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$44_storage_ptr", "typeString": "uint256[44]"}}, "visibility": "private"}], "scope": 1629, "src": "751:14424:6", "usedErrors": []}], "src": "107:15069:6"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol", "exportedSymbols": {"IERC721ReceiverUpgradeable": [1646]}, "id": 1647, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 1630, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "116:23:7"}, {"abstract": false, "baseContracts": [], "canonicalName": "IERC721ReceiverUpgradeable", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 1631, "nodeType": "StructuredDocumentation", "src": "141:152:7", "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."}, "fullyImplemented": false, "id": 1646, "linearizedBaseContracts": [1646], "name": "IERC721ReceiverUpgradeable", "nameLocation": "304:26:7", "nodeType": "ContractDefinition", "nodes": [{"documentation": {"id": 1632, "nodeType": "StructuredDocumentation", "src": "337:493:7", "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}, "functionSelector": "150b7a02", "id": 1645, "implemented": false, "kind": "function", "modifiers": [], "name": "onERC721Received", "nameLocation": "844:16:7", "nodeType": "FunctionDefinition", "parameters": {"id": 1641, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1634, "mutability": "mutable", "name": "operator", "nameLocation": "878:8:7", "nodeType": "VariableDeclaration", "scope": 1645, "src": "870:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1633, "name": "address", "nodeType": "ElementaryTypeName", "src": "870:7:7", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1636, "mutability": "mutable", "name": "from", "nameLocation": "904:4:7", "nodeType": "VariableDeclaration", "scope": 1645, "src": "896:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1635, "name": "address", "nodeType": "ElementaryTypeName", "src": "896:7:7", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1638, "mutability": "mutable", "name": "tokenId", "nameLocation": "926:7:7", "nodeType": "VariableDeclaration", "scope": 1645, "src": "918:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1637, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "918:7:7", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 1640, "mutability": "mutable", "name": "data", "nameLocation": "958:4:7", "nodeType": "VariableDeclaration", "scope": 1645, "src": "943:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": {"typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes"}, "typeName": {"id": 1639, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "943:5:7", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "860:108:7"}, "returnParameters": {"id": 1644, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1643, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1645, "src": "987:6:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 1642, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "987:6:7", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "986:8:7"}, "scope": 1646, "src": "835:160:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 1647, "src": "294:703:7", "usedErrors": []}], "src": "116:882:7"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol", "exportedSymbols": {"IERC165Upgradeable": [2695], "IERC721Upgradeable": [1762]}, "id": 1763, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 1648, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "108:23:8"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", "file": "../../utils/introspection/IERC165Upgradeable.sol", "id": 1649, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1763, "sourceUnit": 2696, "src": "133:58:8", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 1651, "name": "IERC165Upgradeable", "nameLocations": ["293:18:8"], "nodeType": "IdentifierPath", "referencedDeclaration": 2695, "src": "293:18:8"}, "id": 1652, "nodeType": "InheritanceSpecifier", "src": "293:18:8"}], "canonicalName": "IERC721Upgradeable", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 1650, "nodeType": "StructuredDocumentation", "src": "193:67:8", "text": " @dev Required interface of an ERC721 compliant contract."}, "fullyImplemented": false, "id": 1762, "linearizedBaseContracts": [1762, 2695], "name": "IERC721Upgradeable", "nameLocation": "271:18:8", "nodeType": "ContractDefinition", "nodes": [{"anonymous": false, "documentation": {"id": 1653, "nodeType": "StructuredDocumentation", "src": "318:88:8", "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`."}, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "id": 1661, "name": "Transfer", "nameLocation": "417:8:8", "nodeType": "EventDefinition", "parameters": {"id": 1660, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1655, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "442:4:8", "nodeType": "VariableDeclaration", "scope": 1661, "src": "426:20:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1654, "name": "address", "nodeType": "ElementaryTypeName", "src": "426:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1657, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "464:2:8", "nodeType": "VariableDeclaration", "scope": 1661, "src": "448:18:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1656, "name": "address", "nodeType": "ElementaryTypeName", "src": "448:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1659, "indexed": true, "mutability": "mutable", "name": "tokenId", "nameLocation": "484:7:8", "nodeType": "VariableDeclaration", "scope": 1661, "src": "468:23:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1658, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "468:7:8", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "425:67:8"}, "src": "411:82:8"}, {"anonymous": false, "documentation": {"id": 1662, "nodeType": "StructuredDocumentation", "src": "499:94:8", "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."}, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", "id": 1670, "name": "Approval", "nameLocation": "604:8:8", "nodeType": "EventDefinition", "parameters": {"id": 1669, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1664, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "629:5:8", "nodeType": "VariableDeclaration", "scope": 1670, "src": "613:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1663, "name": "address", "nodeType": "ElementaryTypeName", "src": "613:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1666, "indexed": true, "mutability": "mutable", "name": "approved", "nameLocation": "652:8:8", "nodeType": "VariableDeclaration", "scope": 1670, "src": "636:24:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1665, "name": "address", "nodeType": "ElementaryTypeName", "src": "636:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1668, "indexed": true, "mutability": "mutable", "name": "tokenId", "nameLocation": "678:7:8", "nodeType": "VariableDeclaration", "scope": 1670, "src": "662:23:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1667, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "662:7:8", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "612:74:8"}, "src": "598:89:8"}, {"anonymous": false, "documentation": {"id": 1671, "nodeType": "StructuredDocumentation", "src": "693:117:8", "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."}, "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", "id": 1679, "name": "ApprovalForAll", "nameLocation": "821:14:8", "nodeType": "EventDefinition", "parameters": {"id": 1678, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1673, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "852:5:8", "nodeType": "VariableDeclaration", "scope": 1679, "src": "836:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1672, "name": "address", "nodeType": "ElementaryTypeName", "src": "836:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1675, "indexed": true, "mutability": "mutable", "name": "operator", "nameLocation": "875:8:8", "nodeType": "VariableDeclaration", "scope": 1679, "src": "859:24:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1674, "name": "address", "nodeType": "ElementaryTypeName", "src": "859:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1677, "indexed": false, "mutability": "mutable", "name": "approved", "nameLocation": "890:8:8", "nodeType": "VariableDeclaration", "scope": 1679, "src": "885:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1676, "name": "bool", "nodeType": "ElementaryTypeName", "src": "885:4:8", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "835:64:8"}, "src": "815:85:8"}, {"documentation": {"id": 1680, "nodeType": "StructuredDocumentation", "src": "906:76:8", "text": " @dev Returns the number of tokens in ``owner``'s account."}, "functionSelector": "70a08231", "id": 1687, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "996:9:8", "nodeType": "FunctionDefinition", "parameters": {"id": 1683, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1682, "mutability": "mutable", "name": "owner", "nameLocation": "1014:5:8", "nodeType": "VariableDeclaration", "scope": 1687, "src": "1006:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1681, "name": "address", "nodeType": "ElementaryTypeName", "src": "1006:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1005:15:8"}, "returnParameters": {"id": 1686, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1685, "mutability": "mutable", "name": "balance", "nameLocation": "1052:7:8", "nodeType": "VariableDeclaration", "scope": 1687, "src": "1044:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1684, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1044:7:8", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1043:17:8"}, "scope": 1762, "src": "987:74:8", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1688, "nodeType": "StructuredDocumentation", "src": "1067:131:8", "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."}, "functionSelector": "6352211e", "id": 1695, "implemented": false, "kind": "function", "modifiers": [], "name": "ownerOf", "nameLocation": "1212:7:8", "nodeType": "FunctionDefinition", "parameters": {"id": 1691, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1690, "mutability": "mutable", "name": "tokenId", "nameLocation": "1228:7:8", "nodeType": "VariableDeclaration", "scope": 1695, "src": "1220:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1689, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1220:7:8", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1219:17:8"}, "returnParameters": {"id": 1694, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1693, "mutability": "mutable", "name": "owner", "nameLocation": "1268:5:8", "nodeType": "VariableDeclaration", "scope": 1695, "src": "1260:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1692, "name": "address", "nodeType": "ElementaryTypeName", "src": "1260:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1259:15:8"}, "scope": 1762, "src": "1203:72:8", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1696, "nodeType": "StructuredDocumentation", "src": "1281:556:8", "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."}, "functionSelector": "b88d4fde", "id": 1707, "implemented": false, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "1851:16:8", "nodeType": "FunctionDefinition", "parameters": {"id": 1705, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1698, "mutability": "mutable", "name": "from", "nameLocation": "1885:4:8", "nodeType": "VariableDeclaration", "scope": 1707, "src": "1877:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1697, "name": "address", "nodeType": "ElementaryTypeName", "src": "1877:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1700, "mutability": "mutable", "name": "to", "nameLocation": "1907:2:8", "nodeType": "VariableDeclaration", "scope": 1707, "src": "1899:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1699, "name": "address", "nodeType": "ElementaryTypeName", "src": "1899:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1702, "mutability": "mutable", "name": "tokenId", "nameLocation": "1927:7:8", "nodeType": "VariableDeclaration", "scope": 1707, "src": "1919:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1701, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1919:7:8", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 1704, "mutability": "mutable", "name": "data", "nameLocation": "1959:4:8", "nodeType": "VariableDeclaration", "scope": 1707, "src": "1944:19:8", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": {"typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes"}, "typeName": {"id": 1703, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1944:5:8", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "1867:102:8"}, "returnParameters": {"id": 1706, "nodeType": "ParameterList", "parameters": [], "src": "1978:0:8"}, "scope": 1762, "src": "1842:137:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1708, "nodeType": "StructuredDocumentation", "src": "1985:687:8", "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."}, "functionSelector": "42842e0e", "id": 1717, "implemented": false, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "2686:16:8", "nodeType": "FunctionDefinition", "parameters": {"id": 1715, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1710, "mutability": "mutable", "name": "from", "nameLocation": "2720:4:8", "nodeType": "VariableDeclaration", "scope": 1717, "src": "2712:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1709, "name": "address", "nodeType": "ElementaryTypeName", "src": "2712:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1712, "mutability": "mutable", "name": "to", "nameLocation": "2742:2:8", "nodeType": "VariableDeclaration", "scope": 1717, "src": "2734:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1711, "name": "address", "nodeType": "ElementaryTypeName", "src": "2734:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1714, "mutability": "mutable", "name": "tokenId", "nameLocation": "2762:7:8", "nodeType": "VariableDeclaration", "scope": 1717, "src": "2754:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1713, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2754:7:8", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2702:73:8"}, "returnParameters": {"id": 1716, "nodeType": "ParameterList", "parameters": [], "src": "2784:0:8"}, "scope": 1762, "src": "2677:108:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1718, "nodeType": "StructuredDocumentation", "src": "2791:504:8", "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."}, "functionSelector": "23b872dd", "id": 1727, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "3309:12:8", "nodeType": "FunctionDefinition", "parameters": {"id": 1725, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1720, "mutability": "mutable", "name": "from", "nameLocation": "3339:4:8", "nodeType": "VariableDeclaration", "scope": 1727, "src": "3331:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1719, "name": "address", "nodeType": "ElementaryTypeName", "src": "3331:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1722, "mutability": "mutable", "name": "to", "nameLocation": "3361:2:8", "nodeType": "VariableDeclaration", "scope": 1727, "src": "3353:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1721, "name": "address", "nodeType": "ElementaryTypeName", "src": "3353:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1724, "mutability": "mutable", "name": "tokenId", "nameLocation": "3381:7:8", "nodeType": "VariableDeclaration", "scope": 1727, "src": "3373:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1723, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3373:7:8", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3321:73:8"}, "returnParameters": {"id": 1726, "nodeType": "ParameterList", "parameters": [], "src": "3403:0:8"}, "scope": 1762, "src": "3300:104:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1728, "nodeType": "StructuredDocumentation", "src": "3410:452:8", "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."}, "functionSelector": "095ea7b3", "id": 1735, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "3876:7:8", "nodeType": "FunctionDefinition", "parameters": {"id": 1733, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1730, "mutability": "mutable", "name": "to", "nameLocation": "3892:2:8", "nodeType": "VariableDeclaration", "scope": 1735, "src": "3884:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1729, "name": "address", "nodeType": "ElementaryTypeName", "src": "3884:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1732, "mutability": "mutable", "name": "tokenId", "nameLocation": "3904:7:8", "nodeType": "VariableDeclaration", "scope": 1735, "src": "3896:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1731, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3896:7:8", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3883:29:8"}, "returnParameters": {"id": 1734, "nodeType": "ParameterList", "parameters": [], "src": "3921:0:8"}, "scope": 1762, "src": "3867:55:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1736, "nodeType": "StructuredDocumentation", "src": "3928:309:8", "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."}, "functionSelector": "a22cb465", "id": 1743, "implemented": false, "kind": "function", "modifiers": [], "name": "setApprovalForAll", "nameLocation": "4251:17:8", "nodeType": "FunctionDefinition", "parameters": {"id": 1741, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1738, "mutability": "mutable", "name": "operator", "nameLocation": "4277:8:8", "nodeType": "VariableDeclaration", "scope": 1743, "src": "4269:16:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1737, "name": "address", "nodeType": "ElementaryTypeName", "src": "4269:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1740, "mutability": "mutable", "name": "_approved", "nameLocation": "4292:9:8", "nodeType": "VariableDeclaration", "scope": 1743, "src": "4287:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1739, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4287:4:8", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4268:34:8"}, "returnParameters": {"id": 1742, "nodeType": "ParameterList", "parameters": [], "src": "4311:0:8"}, "scope": 1762, "src": "4242:70:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1744, "nodeType": "StructuredDocumentation", "src": "4318:139:8", "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."}, "functionSelector": "081812fc", "id": 1751, "implemented": false, "kind": "function", "modifiers": [], "name": "getApproved", "nameLocation": "4471:11:8", "nodeType": "FunctionDefinition", "parameters": {"id": 1747, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1746, "mutability": "mutable", "name": "tokenId", "nameLocation": "4491:7:8", "nodeType": "VariableDeclaration", "scope": 1751, "src": "4483:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1745, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4483:7:8", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4482:17:8"}, "returnParameters": {"id": 1750, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1749, "mutability": "mutable", "name": "operator", "nameLocation": "4531:8:8", "nodeType": "VariableDeclaration", "scope": 1751, "src": "4523:16:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1748, "name": "address", "nodeType": "ElementaryTypeName", "src": "4523:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "4522:18:8"}, "scope": 1762, "src": "4462:79:8", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1752, "nodeType": "StructuredDocumentation", "src": "4547:138:8", "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"}, "functionSelector": "e985e9c5", "id": 1761, "implemented": false, "kind": "function", "modifiers": [], "name": "isApprovedForAll", "nameLocation": "4699:16:8", "nodeType": "FunctionDefinition", "parameters": {"id": 1757, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1754, "mutability": "mutable", "name": "owner", "nameLocation": "4724:5:8", "nodeType": "VariableDeclaration", "scope": 1761, "src": "4716:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1753, "name": "address", "nodeType": "ElementaryTypeName", "src": "4716:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1756, "mutability": "mutable", "name": "operator", "nameLocation": "4739:8:8", "nodeType": "VariableDeclaration", "scope": 1761, "src": "4731:16:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1755, "name": "address", "nodeType": "ElementaryTypeName", "src": "4731:7:8", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "4715:33:8"}, "returnParameters": {"id": 1760, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1759, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1761, "src": "4772:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1758, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4772:4:8", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4771:6:8"}, "scope": 1762, "src": "4690:88:8", "stateMutability": "view", "virtual": false, "visibility": "external"}], "scope": 1763, "src": "261:4519:8", "usedErrors": []}], "src": "108:4673:8"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol", "exportedSymbols": {"AddressUpgradeable": [2177], "ContextUpgradeable": [2219], "ERC165Upgradeable": [2683], "ERC721URIStorageUpgradeable": [1907], "ERC721Upgradeable": [1628], "IERC165Upgradeable": [2695], "IERC721MetadataUpgradeable": [1934], "IERC721ReceiverUpgradeable": [1646], "IERC721Upgradeable": [1762], "Initializable": [282], "StringsUpgradeable": [2445]}, "id": 1908, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 1764, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "128:23:9"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol", "file": "../ERC721Upgradeable.sol", "id": 1765, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1908, "sourceUnit": 1629, "src": "153:34:9", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../../../proxy/utils/Initializable.sol", "id": 1766, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1908, "sourceUnit": 283, "src": "188:48:9", "symbolAliases": [], "unitAlias": ""}, {"abstract": true, "baseContracts": [{"baseName": {"id": 1768, "name": "Initializable", "nameLocations": ["357:13:9"], "nodeType": "IdentifierPath", "referencedDeclaration": 282, "src": "357:13:9"}, "id": 1769, "nodeType": "InheritanceSpecifier", "src": "357:13:9"}, {"baseName": {"id": 1770, "name": "ERC721Upgradeable", "nameLocations": ["372:17:9"], "nodeType": "IdentifierPath", "referencedDeclaration": 1628, "src": "372:17:9"}, "id": 1771, "nodeType": "InheritanceSpecifier", "src": "372:17:9"}], "canonicalName": "ERC721URIStorageUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 1767, "nodeType": "StructuredDocumentation", "src": "238:69:9", "text": " @dev ERC721 token with storage based token URI management."}, "fullyImplemented": true, "id": 1907, "linearizedBaseContracts": [1907, 1628, 1934, 1762, 2683, 2695, 2219, 282], "name": "ERC721URIStorageUpgradeable", "nameLocation": "326:27:9", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 1776, "nodeType": "Block", "src": "457:7:9", "statements": []}, "id": 1777, "implemented": true, "kind": "function", "modifiers": [{"id": 1774, "kind": "modifierInvocation", "modifierName": {"id": 1773, "name": "onlyInitializing", "nameLocations": ["440:16:9"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "440:16:9"}, "nodeType": "ModifierInvocation", "src": "440:16:9"}], "name": "__ERC721URIStorage_init", "nameLocation": "405:23:9", "nodeType": "FunctionDefinition", "parameters": {"id": 1772, "nodeType": "ParameterList", "parameters": [], "src": "428:2:9"}, "returnParameters": {"id": 1775, "nodeType": "ParameterList", "parameters": [], "src": "457:0:9"}, "scope": 1907, "src": "396:68:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 1782, "nodeType": "Block", "src": "541:7:9", "statements": []}, "id": 1783, "implemented": true, "kind": "function", "modifiers": [{"id": 1780, "kind": "modifierInvocation", "modifierName": {"id": 1779, "name": "onlyInitializing", "nameLocations": ["524:16:9"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "524:16:9"}, "nodeType": "ModifierInvocation", "src": "524:16:9"}], "name": "__ERC721URIStorage_init_unchained", "nameLocation": "479:33:9", "nodeType": "FunctionDefinition", "parameters": {"id": 1778, "nodeType": "ParameterList", "parameters": [], "src": "512:2:9"}, "returnParameters": {"id": 1781, "nodeType": "ParameterList", "parameters": [], "src": "541:0:9"}, "scope": 1907, "src": "470:78:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"global": false, "id": 1786, "libraryName": {"id": 1784, "name": "StringsUpgradeable", "nameLocations": ["559:18:9"], "nodeType": "IdentifierPath", "referencedDeclaration": 2445, "src": "559:18:9"}, "nodeType": "UsingForDirective", "src": "553:37:9", "typeName": {"id": 1785, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "582:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}}, {"constant": false, "id": 1790, "mutability": "mutable", "name": "_tokenURIs", "nameLocation": "670:10:9", "nodeType": "VariableDeclaration", "scope": 1907, "src": "635:45:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string)"}, "typeName": {"id": 1789, "keyType": {"id": 1787, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "643:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Mapping", "src": "635:26:9", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string)"}, "valueType": {"id": 1788, "name": "string", "nodeType": "ElementaryTypeName", "src": "654:6:9", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}}, "visibility": "private"}, {"baseFunctions": [961], "body": {"id": 1848, "nodeType": "Block", "src": "835:520:9", "statements": [{"expression": {"arguments": [{"id": 1800, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1793, "src": "860:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1799, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1538, "src": "845:14:9", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view"}}, "id": 1801, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "845:23:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1802, "nodeType": "ExpressionStatement", "src": "845:23:9"}, {"assignments": [1804], "declarations": [{"constant": false, "id": 1804, "mutability": "mutable", "name": "_tokenURI", "nameLocation": "893:9:9", "nodeType": "VariableDeclaration", "scope": 1848, "src": "879:23:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 1803, "name": "string", "nodeType": "ElementaryTypeName", "src": "879:6:9", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "id": 1808, "initialValue": {"baseExpression": {"id": 1805, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1790, "src": "905:10:9", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)"}}, "id": 1807, "indexExpression": {"id": 1806, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1793, "src": "916:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "905:19:9", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "879:45:9"}, {"assignments": [1810], "declarations": [{"constant": false, "id": 1810, "mutability": "mutable", "name": "base", "nameLocation": "948:4:9", "nodeType": "VariableDeclaration", "scope": 1848, "src": "934:18:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 1809, "name": "string", "nodeType": "ElementaryTypeName", "src": "934:6:9", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "id": 1813, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 1811, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 970, "src": "955:8:9", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view returns (string memory)"}}, "id": 1812, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "955:10:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "nodeType": "VariableDeclarationStatement", "src": "934:31:9"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 1820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 1816, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1810, "src": "1044:4:9", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 1815, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1038:5:9", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)"}, "typeName": {"id": 1814, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1038:5:9", "typeDescriptions": {}}}, "id": 1817, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1038:11:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 1818, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1050:6:9", "memberName": "length", "nodeType": "MemberAccess", "src": "1038:18:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 1819, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1060:1:9", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1038:23:9", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 1824, "nodeType": "IfStatement", "src": "1034:70:9", "trueBody": {"id": 1823, "nodeType": "Block", "src": "1063:41:9", "statements": [{"expression": {"id": 1821, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1804, "src": "1084:9:9", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 1798, "id": 1822, "nodeType": "Return", "src": "1077:16:9"}]}}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 1831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 1827, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1804, "src": "1212:9:9", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 1826, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1206:5:9", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)"}, "typeName": {"id": 1825, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1206:5:9", "typeDescriptions": {}}}, "id": 1828, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1206:16:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 1829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1223:6:9", "memberName": "length", "nodeType": "MemberAccess", "src": "1206:23:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 1830, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1232:1:9", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1206:27:9", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 1842, "nodeType": "IfStatement", "src": "1202:106:9", "trueBody": {"id": 1841, "nodeType": "Block", "src": "1235:73:9", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 1836, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1810, "src": "1280:4:9", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 1837, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1804, "src": "1286:9:9", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 1834, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1263:3:9", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 1835, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1267:12:9", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "1263:16:9", "typeDescriptions": {"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)"}}, "id": 1838, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1263:33:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 1833, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1256:6:9", "typeDescriptions": {"typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)"}, "typeName": {"id": 1832, "name": "string", "nodeType": "ElementaryTypeName", "src": "1256:6:9", "typeDescriptions": {}}}, "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1256:41:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 1798, "id": 1840, "nodeType": "Return", "src": "1249:48:9"}]}}, {"expression": {"arguments": [{"id": 1845, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1793, "src": "1340:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 1843, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "1325:5:9", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_ERC721URIStorageUpgradeable_$1907_$", "typeString": "type(contract super ERC721URIStorageUpgradeable)"}}, "id": 1844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1331:8:9", "memberName": "tokenURI", "nodeType": "MemberAccess", "referencedDeclaration": 961, "src": "1325:14:9", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$", "typeString": "function (uint256) view returns (string memory)"}}, "id": 1846, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1325:23:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 1798, "id": 1847, "nodeType": "Return", "src": "1318:30:9"}]}, "documentation": {"id": 1791, "nodeType": "StructuredDocumentation", "src": "687:55:9", "text": " @dev See {IERC721Metadata-tokenURI}."}, "functionSelector": "c87b56dd", "id": 1849, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenURI", "nameLocation": "756:8:9", "nodeType": "FunctionDefinition", "overrides": {"id": 1795, "nodeType": "OverrideSpecifier", "overrides": [], "src": "802:8:9"}, "parameters": {"id": 1794, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1793, "mutability": "mutable", "name": "tokenId", "nameLocation": "773:7:9", "nodeType": "VariableDeclaration", "scope": 1849, "src": "765:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1792, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "765:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "764:17:9"}, "returnParameters": {"id": 1798, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1797, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1849, "src": "820:13:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 1796, "name": "string", "nodeType": "ElementaryTypeName", "src": "820:6:9", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "819:15:9"}, "scope": 1907, "src": "747:608:9", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"body": {"id": 1870, "nodeType": "Block", "src": "1583:133:9", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 1859, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1852, "src": "1609:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 1858, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1189, "src": "1601:7:9", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)"}}, "id": 1860, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1601:16:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524337323155524953746f726167653a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", "id": 1861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1619:48:9", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4", "typeString": "literal_string \"ERC721URIStorage: URI set of nonexistent token\""}, "value": "ERC721URIStorage: URI set of nonexistent token"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4", "typeString": "literal_string \"ERC721URIStorage: URI set of nonexistent token\""}], "id": 1857, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1593:7:9", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1862, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1593:75:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1863, "nodeType": "ExpressionStatement", "src": "1593:75:9"}, {"expression": {"id": 1868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 1864, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1790, "src": "1678:10:9", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)"}}, "id": 1866, "indexExpression": {"id": 1865, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1852, "src": "1689:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1678:19:9", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 1867, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1854, "src": "1700:9:9", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "src": "1678:31:9", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "id": 1869, "nodeType": "ExpressionStatement", "src": "1678:31:9"}]}, "documentation": {"id": 1850, "nodeType": "StructuredDocumentation", "src": "1361:136:9", "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist."}, "id": 1871, "implemented": true, "kind": "function", "modifiers": [], "name": "_setTokenURI", "nameLocation": "1511:12:9", "nodeType": "FunctionDefinition", "parameters": {"id": 1855, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1852, "mutability": "mutable", "name": "tokenId", "nameLocation": "1532:7:9", "nodeType": "VariableDeclaration", "scope": 1871, "src": "1524:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1851, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1524:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 1854, "mutability": "mutable", "name": "_tokenURI", "nameLocation": "1555:9:9", "nodeType": "VariableDeclaration", "scope": 1871, "src": "1541:23:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 1853, "name": "string", "nodeType": "ElementaryTypeName", "src": "1541:6:9", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1523:42:9"}, "returnParameters": {"id": 1856, "nodeType": "ParameterList", "parameters": [], "src": "1583:0:9"}, "scope": 1907, "src": "1502:214:9", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"baseFunctions": [1393], "body": {"id": 1900, "nodeType": "Block", "src": "1992:142:9", "statements": [{"expression": {"arguments": [{"id": 1881, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1874, "src": "2014:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 1878, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "2002:5:9", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_ERC721URIStorageUpgradeable_$1907_$", "typeString": "type(contract super ERC721URIStorageUpgradeable)"}}, "id": 1880, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2008:5:9", "memberName": "_burn", "nodeType": "MemberAccess", "referencedDeclaration": 1393, "src": "2002:11:9", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)"}}, "id": 1882, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2002:20:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1883, "nodeType": "ExpressionStatement", "src": "2002:20:9"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 1892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"baseExpression": {"id": 1886, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1790, "src": "2043:10:9", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)"}}, "id": 1888, "indexExpression": {"id": 1887, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1874, "src": "2054:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2043:19:9", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}], "id": 1885, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2037:5:9", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)"}, "typeName": {"id": 1884, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2037:5:9", "typeDescriptions": {}}}, "id": 1889, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2037:26:9", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer"}}, "id": 1890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2064:6:9", "memberName": "length", "nodeType": "MemberAccess", "src": "2037:33:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 1891, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2074:1:9", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "2037:38:9", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 1899, "nodeType": "IfStatement", "src": "2033:95:9", "trueBody": {"id": 1898, "nodeType": "Block", "src": "2077:51:9", "statements": [{"expression": {"id": 1896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "2091:26:9", "subExpression": {"baseExpression": {"id": 1893, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1790, "src": "2098:10:9", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)"}}, "id": 1895, "indexExpression": {"id": 1894, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1874, "src": "2109:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2098:19:9", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1897, "nodeType": "ExpressionStatement", "src": "2091:26:9"}]}}]}, "documentation": {"id": 1872, "nodeType": "StructuredDocumentation", "src": "1722:207:9", "text": " @dev See {ERC721-_burn}. This override additionally checks to see if a\n token-specific URI was set for the token, and if so, it deletes the token URI from\n the storage mapping."}, "id": 1901, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nameLocation": "1943:5:9", "nodeType": "FunctionDefinition", "overrides": {"id": 1876, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1983:8:9"}, "parameters": {"id": 1875, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1874, "mutability": "mutable", "name": "tokenId", "nameLocation": "1957:7:9", "nodeType": "VariableDeclaration", "scope": 1901, "src": "1949:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1873, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1949:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1948:17:9"}, "returnParameters": {"id": 1877, "nodeType": "ParameterList", "parameters": [], "src": "1992:0:9"}, "scope": 1907, "src": "1934:200:9", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"constant": false, "documentation": {"id": 1902, "nodeType": "StructuredDocumentation", "src": "2140:254:9", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}, "id": 1906, "mutability": "mutable", "name": "__gap", "nameLocation": "2419:5:9", "nodeType": "VariableDeclaration", "scope": 1907, "src": "2399:25:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$49_storage", "typeString": "uint256[49]"}, "typeName": {"baseType": {"id": 1903, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2399:7:9", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 1905, "length": {"hexValue": "3439", "id": 1904, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2407:2:9", "typeDescriptions": {"typeIdentifier": "t_rational_49_by_1", "typeString": "int_const 49"}, "value": "49"}, "nodeType": "ArrayTypeName", "src": "2399:11:9", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", "typeString": "uint256[49]"}}, "visibility": "private"}], "scope": 1908, "src": "308:2119:9", "usedErrors": []}], "src": "128:2300:9"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol", "exportedSymbols": {"IERC165Upgradeable": [2695], "IERC721MetadataUpgradeable": [1934], "IERC721Upgradeable": [1762]}, "id": 1935, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 1909, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "112:23:10"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol", "file": "../IERC721Upgradeable.sol", "id": 1910, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1935, "sourceUnit": 1763, "src": "137:35:10", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 1912, "name": "IERC721Upgradeable", "nameLocations": ["348:18:10"], "nodeType": "IdentifierPath", "referencedDeclaration": 1762, "src": "348:18:10"}, "id": 1913, "nodeType": "InheritanceSpecifier", "src": "348:18:10"}], "canonicalName": "IERC721MetadataUpgradeable", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 1911, "nodeType": "StructuredDocumentation", "src": "174:133:10", "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"}, "fullyImplemented": false, "id": 1934, "linearizedBaseContracts": [1934, 1762, 2695], "name": "IERC721MetadataUpgradeable", "nameLocation": "318:26:10", "nodeType": "ContractDefinition", "nodes": [{"documentation": {"id": 1914, "nodeType": "StructuredDocumentation", "src": "373:58:10", "text": " @dev Returns the token collection name."}, "functionSelector": "06fdde03", "id": 1919, "implemented": false, "kind": "function", "modifiers": [], "name": "name", "nameLocation": "445:4:10", "nodeType": "FunctionDefinition", "parameters": {"id": 1915, "nodeType": "ParameterList", "parameters": [], "src": "449:2:10"}, "returnParameters": {"id": 1918, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1917, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1919, "src": "475:13:10", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 1916, "name": "string", "nodeType": "ElementaryTypeName", "src": "475:6:10", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "474:15:10"}, "scope": 1934, "src": "436:54:10", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1920, "nodeType": "StructuredDocumentation", "src": "496:60:10", "text": " @dev Returns the token collection symbol."}, "functionSelector": "95d89b41", "id": 1925, "implemented": false, "kind": "function", "modifiers": [], "name": "symbol", "nameLocation": "570:6:10", "nodeType": "FunctionDefinition", "parameters": {"id": 1921, "nodeType": "ParameterList", "parameters": [], "src": "576:2:10"}, "returnParameters": {"id": 1924, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1923, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1925, "src": "602:13:10", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 1922, "name": "string", "nodeType": "ElementaryTypeName", "src": "602:6:10", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "601:15:10"}, "scope": 1934, "src": "561:56:10", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 1926, "nodeType": "StructuredDocumentation", "src": "623:90:10", "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."}, "functionSelector": "c87b56dd", "id": 1933, "implemented": false, "kind": "function", "modifiers": [], "name": "tokenURI", "nameLocation": "727:8:10", "nodeType": "FunctionDefinition", "parameters": {"id": 1929, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1928, "mutability": "mutable", "name": "tokenId", "nameLocation": "744:7:10", "nodeType": "VariableDeclaration", "scope": 1933, "src": "736:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1927, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "736:7:10", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "735:17:10"}, "returnParameters": {"id": 1932, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1931, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1933, "src": "776:13:10", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 1930, "name": "string", "nodeType": "ElementaryTypeName", "src": "776:6:10", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "775:15:10"}, "scope": 1934, "src": "718:73:10", "stateMutability": "view", "virtual": false, "visibility": "external"}], "scope": 1935, "src": "308:485:10", "usedErrors": []}], "src": "112:682:10"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "exportedSymbols": {"AddressUpgradeable": [2177]}, "id": 2178, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 1936, "literals": ["solidity", "^", "0.8", ".1"], "nodeType": "PragmaDirective", "src": "101:23:11"}, {"abstract": false, "baseContracts": [], "canonicalName": "AddressUpgradeable", "contractDependencies": [], "contractKind": "library", "documentation": {"id": 1937, "nodeType": "StructuredDocumentation", "src": "126:67:11", "text": " @dev Collection of functions related to the address type"}, "fullyImplemented": true, "id": 2177, "linearizedBaseContracts": [2177], "name": "AddressUpgradeable", "nameLocation": "202:18:11", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 1951, "nodeType": "Block", "src": "1252:254:11", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 1949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"expression": {"id": 1945, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1940, "src": "1476:7:11", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 1946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1484:4:11", "memberName": "code", "nodeType": "MemberAccess", "src": "1476:12:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 1947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1489:6:11", "memberName": "length", "nodeType": "MemberAccess", "src": "1476:19:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 1948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1498:1:11", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1476:23:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 1944, "id": 1950, "nodeType": "Return", "src": "1469:30:11"}]}, "documentation": {"id": 1938, "nodeType": "StructuredDocumentation", "src": "227:954:11", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="}, "id": 1952, "implemented": true, "kind": "function", "modifiers": [], "name": "isContract", "nameLocation": "1195:10:11", "nodeType": "FunctionDefinition", "parameters": {"id": 1941, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1940, "mutability": "mutable", "name": "account", "nameLocation": "1214:7:11", "nodeType": "VariableDeclaration", "scope": 1952, "src": "1206:15:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1939, "name": "address", "nodeType": "ElementaryTypeName", "src": "1206:7:11", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1205:17:11"}, "returnParameters": {"id": 1944, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1943, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1952, "src": "1246:4:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1942, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1246:4:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "1245:6:11"}, "scope": 2177, "src": "1186:320:11", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 1985, "nodeType": "Block", "src": "2494:241:11", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 1963, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "2520:4:11", "typeDescriptions": {"typeIdentifier": "t_contract$_AddressUpgradeable_$2177", "typeString": "library AddressUpgradeable"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_AddressUpgradeable_$2177", "typeString": "library AddressUpgradeable"}], "id": 1962, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2512:7:11", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 1961, "name": "address", "nodeType": "ElementaryTypeName", "src": "2512:7:11", "typeDescriptions": {}}}, "id": 1964, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2512:13:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 1965, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2526:7:11", "memberName": "balance", "nodeType": "MemberAccess", "src": "2512:21:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 1966, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1957, "src": "2537:6:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2512:31:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", "id": 1968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2545:31:11", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", "typeString": "literal_string \"Address: insufficient balance\""}, "value": "Address: insufficient balance"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", "typeString": "literal_string \"Address: insufficient balance\""}], "id": 1960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2504:7:11", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1969, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2504:73:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1970, "nodeType": "ExpressionStatement", "src": "2504:73:11"}, {"assignments": [1972, null], "declarations": [{"constant": false, "id": 1972, "mutability": "mutable", "name": "success", "nameLocation": "2594:7:11", "nodeType": "VariableDeclaration", "scope": 1985, "src": "2589:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 1971, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2589:4:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, null], "id": 1979, "initialValue": {"arguments": [{"hexValue": "", "id": 1977, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2637:2:11", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}], "expression": {"id": 1973, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1955, "src": "2607:9:11", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "id": 1974, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2617:4:11", "memberName": "call", "nodeType": "MemberAccess", "src": "2607:14:11", "typeDescriptions": {"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)"}}, "id": 1976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": ["value"], "nodeType": "FunctionCallOptions", "options": [{"id": 1975, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1957, "src": "2629:6:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "src": "2607:29:11", "typeDescriptions": {"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)"}}, "id": 1978, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2607:33:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)"}}, "nodeType": "VariableDeclarationStatement", "src": "2588:52:11"}, {"expression": {"arguments": [{"id": 1981, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1972, "src": "2658:7:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", "id": 1982, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2667:60:11", "typeDescriptions": {"typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\""}, "value": "Address: unable to send value, recipient may have reverted"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\""}], "id": 1980, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2650:7:11", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 1983, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2650:78:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 1984, "nodeType": "ExpressionStatement", "src": "2650:78:11"}]}, "documentation": {"id": 1953, "nodeType": "StructuredDocumentation", "src": "1512:906:11", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."}, "id": 1986, "implemented": true, "kind": "function", "modifiers": [], "name": "sendValue", "nameLocation": "2432:9:11", "nodeType": "FunctionDefinition", "parameters": {"id": 1958, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1955, "mutability": "mutable", "name": "recipient", "nameLocation": "2458:9:11", "nodeType": "VariableDeclaration", "scope": 1986, "src": "2442:25:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}, "typeName": {"id": 1954, "name": "address", "nodeType": "ElementaryTypeName", "src": "2442:15:11", "stateMutability": "payable", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "visibility": "internal"}, {"constant": false, "id": 1957, "mutability": "mutable", "name": "amount", "nameLocation": "2477:6:11", "nodeType": "VariableDeclaration", "scope": 1986, "src": "2469:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 1956, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2469:7:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2441:43:11"}, "returnParameters": {"id": 1959, "nodeType": "ParameterList", "parameters": [], "src": "2494:0:11"}, "scope": 2177, "src": "2423:312:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2002, "nodeType": "Block", "src": "3566:84:11", "statements": [{"expression": {"arguments": [{"id": 1997, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1989, "src": "3596:6:11", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 1998, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1991, "src": "3604:4:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", "id": 1999, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3610:32:11", "typeDescriptions": {"typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", "typeString": "literal_string \"Address: low-level call failed\""}, "value": "Address: low-level call failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", "typeString": "literal_string \"Address: low-level call failed\""}], "id": 1996, "name": "functionCall", "nodeType": "Identifier", "overloadedDeclarations": [2003, 2023], "referencedDeclaration": 2023, "src": "3583:12:11", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)"}}, "id": 2000, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3583:60:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 1995, "id": 2001, "nodeType": "Return", "src": "3576:67:11"}]}, "documentation": {"id": 1987, "nodeType": "StructuredDocumentation", "src": "2741:731:11", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"}, "id": 2003, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", "nameLocation": "3486:12:11", "nodeType": "FunctionDefinition", "parameters": {"id": 1992, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1989, "mutability": "mutable", "name": "target", "nameLocation": "3507:6:11", "nodeType": "VariableDeclaration", "scope": 2003, "src": "3499:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 1988, "name": "address", "nodeType": "ElementaryTypeName", "src": "3499:7:11", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 1991, "mutability": "mutable", "name": "data", "nameLocation": "3528:4:11", "nodeType": "VariableDeclaration", "scope": 2003, "src": "3515:17:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 1990, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3515:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "3498:35:11"}, "returnParameters": {"id": 1995, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 1994, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2003, "src": "3552:12:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 1993, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3552:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "3551:14:11"}, "scope": 2177, "src": "3477:173:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2022, "nodeType": "Block", "src": "4019:76:11", "statements": [{"expression": {"arguments": [{"id": 2016, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2006, "src": "4058:6:11", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 2017, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2008, "src": "4066:4:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"hexValue": "30", "id": 2018, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4072:1:11", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, {"id": 2019, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2010, "src": "4075:12:11", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 2015, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [2043, 2093], "referencedDeclaration": 2093, "src": "4036:21:11", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)"}}, "id": 2020, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4036:52:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 2014, "id": 2021, "nodeType": "Return", "src": "4029:59:11"}]}, "documentation": {"id": 2004, "nodeType": "StructuredDocumentation", "src": "3656:211:11", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"}, "id": 2023, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", "nameLocation": "3881:12:11", "nodeType": "FunctionDefinition", "parameters": {"id": 2011, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2006, "mutability": "mutable", "name": "target", "nameLocation": "3911:6:11", "nodeType": "VariableDeclaration", "scope": 2023, "src": "3903:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2005, "name": "address", "nodeType": "ElementaryTypeName", "src": "3903:7:11", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2008, "mutability": "mutable", "name": "data", "nameLocation": "3940:4:11", "nodeType": "VariableDeclaration", "scope": 2023, "src": "3927:17:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2007, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3927:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 2010, "mutability": "mutable", "name": "errorMessage", "nameLocation": "3968:12:11", "nodeType": "VariableDeclaration", "scope": 2023, "src": "3954:26:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2009, "name": "string", "nodeType": "ElementaryTypeName", "src": "3954:6:11", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "3893:93:11"}, "returnParameters": {"id": 2014, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2013, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2023, "src": "4005:12:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2012, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4005:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "4004:14:11"}, "scope": 2177, "src": "3872:223:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2042, "nodeType": "Block", "src": "4600:111:11", "statements": [{"expression": {"arguments": [{"id": 2036, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2026, "src": "4639:6:11", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 2037, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2028, "src": "4647:4:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"id": 2038, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2030, "src": "4653:5:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", "id": 2039, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4660:43:11", "typeDescriptions": {"typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", "typeString": "literal_string \"Address: low-level call with value failed\""}, "value": "Address: low-level call with value failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", "typeString": "literal_string \"Address: low-level call with value failed\""}], "id": 2035, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [2043, 2093], "referencedDeclaration": 2093, "src": "4617:21:11", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)"}}, "id": 2040, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4617:87:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 2034, "id": 2041, "nodeType": "Return", "src": "4610:94:11"}]}, "documentation": {"id": 2024, "nodeType": "StructuredDocumentation", "src": "4101:351:11", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"}, "id": 2043, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", "nameLocation": "4466:21:11", "nodeType": "FunctionDefinition", "parameters": {"id": 2031, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2026, "mutability": "mutable", "name": "target", "nameLocation": "4505:6:11", "nodeType": "VariableDeclaration", "scope": 2043, "src": "4497:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2025, "name": "address", "nodeType": "ElementaryTypeName", "src": "4497:7:11", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2028, "mutability": "mutable", "name": "data", "nameLocation": "4534:4:11", "nodeType": "VariableDeclaration", "scope": 2043, "src": "4521:17:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2027, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4521:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 2030, "mutability": "mutable", "name": "value", "nameLocation": "4556:5:11", "nodeType": "VariableDeclaration", "scope": 2043, "src": "4548:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2029, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4548:7:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4487:80:11"}, "returnParameters": {"id": 2034, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2033, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2043, "src": "4586:12:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2032, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4586:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "4585:14:11"}, "scope": 2177, "src": "4457:254:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2092, "nodeType": "Block", "src": "5138:320:11", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 2060, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "5164:4:11", "typeDescriptions": {"typeIdentifier": "t_contract$_AddressUpgradeable_$2177", "typeString": "library AddressUpgradeable"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_AddressUpgradeable_$2177", "typeString": "library AddressUpgradeable"}], "id": 2059, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5156:7:11", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 2058, "name": "address", "nodeType": "ElementaryTypeName", "src": "5156:7:11", "typeDescriptions": {}}}, "id": 2061, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5156:13:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 2062, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5170:7:11", "memberName": "balance", "nodeType": "MemberAccess", "src": "5156:21:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 2063, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2050, "src": "5181:5:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5156:30:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", "id": 2065, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5188:40:11", "typeDescriptions": {"typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", "typeString": "literal_string \"Address: insufficient balance for call\""}, "value": "Address: insufficient balance for call"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", "typeString": "literal_string \"Address: insufficient balance for call\""}], "id": 2057, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5148:7:11", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 2066, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5148:81:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2067, "nodeType": "ExpressionStatement", "src": "5148:81:11"}, {"expression": {"arguments": [{"arguments": [{"id": 2070, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2046, "src": "5258:6:11", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 2069, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1952, "src": "5247:10:11", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)"}}, "id": 2071, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5247:18:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", "id": 2072, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5267:31:11", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", "typeString": "literal_string \"Address: call to non-contract\""}, "value": "Address: call to non-contract"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", "typeString": "literal_string \"Address: call to non-contract\""}], "id": 2068, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5239:7:11", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 2073, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5239:60:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2074, "nodeType": "ExpressionStatement", "src": "5239:60:11"}, {"assignments": [2076, 2078], "declarations": [{"constant": false, "id": 2076, "mutability": "mutable", "name": "success", "nameLocation": "5316:7:11", "nodeType": "VariableDeclaration", "scope": 2092, "src": "5311:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2075, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5311:4:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 2078, "mutability": "mutable", "name": "returndata", "nameLocation": "5338:10:11", "nodeType": "VariableDeclaration", "scope": 2092, "src": "5325:23:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2077, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5325:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 2085, "initialValue": {"arguments": [{"id": 2083, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2048, "src": "5378:4:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"id": 2079, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2046, "src": "5352:6:11", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 2080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5359:4:11", "memberName": "call", "nodeType": "MemberAccess", "src": "5352:11:11", "typeDescriptions": {"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)"}}, "id": 2082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": ["value"], "nodeType": "FunctionCallOptions", "options": [{"id": 2081, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2050, "src": "5371:5:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "src": "5352:25:11", "typeDescriptions": {"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)"}}, "id": 2084, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5352:31:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)"}}, "nodeType": "VariableDeclarationStatement", "src": "5310:73:11"}, {"expression": {"arguments": [{"id": 2087, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2076, "src": "5417:7:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 2088, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2078, "src": "5426:10:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"id": 2089, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2052, "src": "5438:12:11", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 2086, "name": "verifyCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2176, "src": "5400:16:11", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)"}}, "id": 2090, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5400:51:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 2056, "id": 2091, "nodeType": "Return", "src": "5393:58:11"}]}, "documentation": {"id": 2044, "nodeType": "StructuredDocumentation", "src": "4717:237:11", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"}, "id": 2093, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", "nameLocation": "4968:21:11", "nodeType": "FunctionDefinition", "parameters": {"id": 2053, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2046, "mutability": "mutable", "name": "target", "nameLocation": "5007:6:11", "nodeType": "VariableDeclaration", "scope": 2093, "src": "4999:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2045, "name": "address", "nodeType": "ElementaryTypeName", "src": "4999:7:11", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2048, "mutability": "mutable", "name": "data", "nameLocation": "5036:4:11", "nodeType": "VariableDeclaration", "scope": 2093, "src": "5023:17:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2047, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5023:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 2050, "mutability": "mutable", "name": "value", "nameLocation": "5058:5:11", "nodeType": "VariableDeclaration", "scope": 2093, "src": "5050:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2049, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5050:7:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 2052, "mutability": "mutable", "name": "errorMessage", "nameLocation": "5087:12:11", "nodeType": "VariableDeclaration", "scope": 2093, "src": "5073:26:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2051, "name": "string", "nodeType": "ElementaryTypeName", "src": "5073:6:11", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "4989:116:11"}, "returnParameters": {"id": 2056, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2055, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2093, "src": "5124:12:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2054, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5124:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "5123:14:11"}, "scope": 2177, "src": "4959:499:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2109, "nodeType": "Block", "src": "5735:97:11", "statements": [{"expression": {"arguments": [{"id": 2104, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2096, "src": "5771:6:11", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 2105, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2098, "src": "5779:4:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", "id": 2106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5785:39:11", "typeDescriptions": {"typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", "typeString": "literal_string \"Address: low-level static call failed\""}, "value": "Address: low-level static call failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", "typeString": "literal_string \"Address: low-level static call failed\""}], "id": 2103, "name": "functionStaticCall", "nodeType": "Identifier", "overloadedDeclarations": [2110, 2145], "referencedDeclaration": 2145, "src": "5752:18:11", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)"}}, "id": 2107, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5752:73:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 2102, "id": 2108, "nodeType": "Return", "src": "5745:80:11"}]}, "documentation": {"id": 2094, "nodeType": "StructuredDocumentation", "src": "5464:166:11", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"}, "id": 2110, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", "nameLocation": "5644:18:11", "nodeType": "FunctionDefinition", "parameters": {"id": 2099, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2096, "mutability": "mutable", "name": "target", "nameLocation": "5671:6:11", "nodeType": "VariableDeclaration", "scope": 2110, "src": "5663:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2095, "name": "address", "nodeType": "ElementaryTypeName", "src": "5663:7:11", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2098, "mutability": "mutable", "name": "data", "nameLocation": "5692:4:11", "nodeType": "VariableDeclaration", "scope": 2110, "src": "5679:17:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2097, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5679:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "5662:35:11"}, "returnParameters": {"id": 2102, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2101, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2110, "src": "5721:12:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2100, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5721:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "5720:14:11"}, "scope": 2177, "src": "5635:197:11", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 2144, "nodeType": "Block", "src": "6174:228:11", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 2124, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2113, "src": "6203:6:11", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 2123, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1952, "src": "6192:10:11", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)"}}, "id": 2125, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6192:18:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", "id": 2126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6212:38:11", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", "typeString": "literal_string \"Address: static call to non-contract\""}, "value": "Address: static call to non-contract"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", "typeString": "literal_string \"Address: static call to non-contract\""}], "id": 2122, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6184:7:11", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 2127, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6184:67:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2128, "nodeType": "ExpressionStatement", "src": "6184:67:11"}, {"assignments": [2130, 2132], "declarations": [{"constant": false, "id": 2130, "mutability": "mutable", "name": "success", "nameLocation": "6268:7:11", "nodeType": "VariableDeclaration", "scope": 2144, "src": "6263:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2129, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6263:4:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 2132, "mutability": "mutable", "name": "returndata", "nameLocation": "6290:10:11", "nodeType": "VariableDeclaration", "scope": 2144, "src": "6277:23:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2131, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6277:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 2137, "initialValue": {"arguments": [{"id": 2135, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2115, "src": "6322:4:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"id": 2133, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2113, "src": "6304:6:11", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 2134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6311:10:11", "memberName": "staticcall", "nodeType": "MemberAccess", "src": "6304:17:11", "typeDescriptions": {"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) view returns (bool,bytes memory)"}}, "id": 2136, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6304:23:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)"}}, "nodeType": "VariableDeclarationStatement", "src": "6262:65:11"}, {"expression": {"arguments": [{"id": 2139, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2130, "src": "6361:7:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 2140, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2132, "src": "6370:10:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"id": 2141, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2117, "src": "6382:12:11", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 2138, "name": "verifyCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2176, "src": "6344:16:11", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)"}}, "id": 2142, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6344:51:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 2121, "id": 2143, "nodeType": "Return", "src": "6337:58:11"}]}, "documentation": {"id": 2111, "nodeType": "StructuredDocumentation", "src": "5838:173:11", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"}, "id": 2145, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", "nameLocation": "6025:18:11", "nodeType": "FunctionDefinition", "parameters": {"id": 2118, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2113, "mutability": "mutable", "name": "target", "nameLocation": "6061:6:11", "nodeType": "VariableDeclaration", "scope": 2145, "src": "6053:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2112, "name": "address", "nodeType": "ElementaryTypeName", "src": "6053:7:11", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2115, "mutability": "mutable", "name": "data", "nameLocation": "6090:4:11", "nodeType": "VariableDeclaration", "scope": 2145, "src": "6077:17:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2114, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6077:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 2117, "mutability": "mutable", "name": "errorMessage", "nameLocation": "6118:12:11", "nodeType": "VariableDeclaration", "scope": 2145, "src": "6104:26:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2116, "name": "string", "nodeType": "ElementaryTypeName", "src": "6104:6:11", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "6043:93:11"}, "returnParameters": {"id": 2121, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2120, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2145, "src": "6160:12:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2119, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6160:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "6159:14:11"}, "scope": 2177, "src": "6016:386:11", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 2175, "nodeType": "Block", "src": "6782:582:11", "statements": [{"condition": {"id": 2157, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2148, "src": "6796:7:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 2173, "nodeType": "Block", "src": "6853:505:11", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 2161, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2150, "src": "6937:10:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 2162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6948:6:11", "memberName": "length", "nodeType": "MemberAccess", "src": "6937:17:11", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 2163, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6957:1:11", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "6937:21:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 2171, "nodeType": "Block", "src": "7295:53:11", "statements": [{"expression": {"arguments": [{"id": 2168, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2152, "src": "7320:12:11", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 2167, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [-19, -19], "referencedDeclaration": -19, "src": "7313:6:11", "typeDescriptions": {"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure"}}, "id": 2169, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7313:20:11", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2170, "nodeType": "ExpressionStatement", "src": "7313:20:11"}]}, "id": 2172, "nodeType": "IfStatement", "src": "6933:415:11", "trueBody": {"id": 2166, "nodeType": "Block", "src": "6960:329:11", "statements": [{"AST": {"nodeType": "YulBlock", "src": "7130:145:11", "statements": [{"nodeType": "YulVariableDeclaration", "src": "7152:40:11", "value": {"arguments": [{"name": "returndata", "nodeType": "YulIdentifier", "src": "7181:10:11"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "7175:5:11"}, "nodeType": "YulFunctionCall", "src": "7175:17:11"}, "variables": [{"name": "returndata_size", "nodeType": "YulTypedName", "src": "7156:15:11", "type": ""}]}, {"expression": {"arguments": [{"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "7224:2:11", "type": "", "value": "32"}, {"name": "returndata", "nodeType": "YulIdentifier", "src": "7228:10:11"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "7220:3:11"}, "nodeType": "YulFunctionCall", "src": "7220:19:11"}, {"name": "returndata_size", "nodeType": "YulIdentifier", "src": "7241:15:11"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "7213:6:11"}, "nodeType": "YulFunctionCall", "src": "7213:44:11"}, "nodeType": "YulExpressionStatement", "src": "7213:44:11"}]}, "documentation": "@solidity memory-safe-assembly", "evmVersion": "london", "externalReferences": [{"declaration": 2150, "isOffset": false, "isSlot": false, "src": "7181:10:11", "valueSize": 1}, {"declaration": 2150, "isOffset": false, "isSlot": false, "src": "7228:10:11", "valueSize": 1}], "id": 2165, "nodeType": "InlineAssembly", "src": "7121:154:11"}]}}]}, "id": 2174, "nodeType": "IfStatement", "src": "6792:566:11", "trueBody": {"id": 2160, "nodeType": "Block", "src": "6805:42:11", "statements": [{"expression": {"id": 2158, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2150, "src": "6826:10:11", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 2156, "id": 2159, "nodeType": "Return", "src": "6819:17:11"}]}}]}, "documentation": {"id": 2146, "nodeType": "StructuredDocumentation", "src": "6408:209:11", "text": " @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"}, "id": 2176, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyCallResult", "nameLocation": "6631:16:11", "nodeType": "FunctionDefinition", "parameters": {"id": 2153, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2148, "mutability": "mutable", "name": "success", "nameLocation": "6662:7:11", "nodeType": "VariableDeclaration", "scope": 2176, "src": "6657:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2147, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6657:4:11", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 2150, "mutability": "mutable", "name": "returndata", "nameLocation": "6692:10:11", "nodeType": "VariableDeclaration", "scope": 2176, "src": "6679:23:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2149, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6679:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 2152, "mutability": "mutable", "name": "errorMessage", "nameLocation": "6726:12:11", "nodeType": "VariableDeclaration", "scope": 2176, "src": "6712:26:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2151, "name": "string", "nodeType": "ElementaryTypeName", "src": "6712:6:11", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "6647:97:11"}, "returnParameters": {"id": 2156, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2155, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2176, "src": "6768:12:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2154, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6768:5:11", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "6767:14:11"}, "scope": 2177, "src": "6622:742:11", "stateMutability": "pure", "virtual": false, "visibility": "internal"}], "scope": 2178, "src": "194:7172:11", "usedErrors": []}], "src": "101:7266:11"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "exportedSymbols": {"AddressUpgradeable": [2177], "ContextUpgradeable": [2219], "Initializable": [282]}, "id": 2220, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 2179, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "86:23:12"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../proxy/utils/Initializable.sol", "id": 2180, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2220, "sourceUnit": 283, "src": "110:42:12", "symbolAliases": [], "unitAlias": ""}, {"abstract": true, "baseContracts": [{"baseName": {"id": 2182, "name": "Initializable", "nameLocations": ["691:13:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 282, "src": "691:13:12"}, "id": 2183, "nodeType": "InheritanceSpecifier", "src": "691:13:12"}], "canonicalName": "ContextUpgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 2181, "nodeType": "StructuredDocumentation", "src": "154:496:12", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."}, "fullyImplemented": true, "id": 2219, "linearizedBaseContracts": [2219, 282], "name": "ContextUpgradeable", "nameLocation": "669:18:12", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 2188, "nodeType": "Block", "src": "763:7:12", "statements": []}, "id": 2189, "implemented": true, "kind": "function", "modifiers": [{"id": 2186, "kind": "modifierInvocation", "modifierName": {"id": 2185, "name": "onlyInitializing", "nameLocations": ["746:16:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "746:16:12"}, "nodeType": "ModifierInvocation", "src": "746:16:12"}], "name": "__Context_init", "nameLocation": "720:14:12", "nodeType": "FunctionDefinition", "parameters": {"id": 2184, "nodeType": "ParameterList", "parameters": [], "src": "734:2:12"}, "returnParameters": {"id": 2187, "nodeType": "ParameterList", "parameters": [], "src": "763:0:12"}, "scope": 2219, "src": "711:59:12", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2194, "nodeType": "Block", "src": "838:7:12", "statements": []}, "id": 2195, "implemented": true, "kind": "function", "modifiers": [{"id": 2192, "kind": "modifierInvocation", "modifierName": {"id": 2191, "name": "onlyInitializing", "nameLocations": ["821:16:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "821:16:12"}, "nodeType": "ModifierInvocation", "src": "821:16:12"}], "name": "__Context_init_unchained", "nameLocation": "785:24:12", "nodeType": "FunctionDefinition", "parameters": {"id": 2190, "nodeType": "ParameterList", "parameters": [], "src": "809:2:12"}, "returnParameters": {"id": 2193, "nodeType": "ParameterList", "parameters": [], "src": "838:0:12"}, "scope": 2219, "src": "776:69:12", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2203, "nodeType": "Block", "src": "912:34:12", "statements": [{"expression": {"expression": {"id": 2200, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "929:3:12", "typeDescriptions": {"typeIdentifier": "t_magic_message", "typeString": "msg"}}, "id": 2201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "933:6:12", "memberName": "sender", "nodeType": "MemberAccess", "src": "929:10:12", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 2199, "id": 2202, "nodeType": "Return", "src": "922:17:12"}]}, "id": 2204, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nameLocation": "859:10:12", "nodeType": "FunctionDefinition", "parameters": {"id": 2196, "nodeType": "ParameterList", "parameters": [], "src": "869:2:12"}, "returnParameters": {"id": 2199, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2198, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2204, "src": "903:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2197, "name": "address", "nodeType": "ElementaryTypeName", "src": "903:7:12", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "902:9:12"}, "scope": 2219, "src": "850:96:12", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 2212, "nodeType": "Block", "src": "1019:32:12", "statements": [{"expression": {"expression": {"id": 2209, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "1036:3:12", "typeDescriptions": {"typeIdentifier": "t_magic_message", "typeString": "msg"}}, "id": 2210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1040:4:12", "memberName": "data", "nodeType": "MemberAccess", "src": "1036:8:12", "typeDescriptions": {"typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata"}}, "functionReturnParameters": 2208, "id": 2211, "nodeType": "Return", "src": "1029:15:12"}]}, "id": 2213, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nameLocation": "961:8:12", "nodeType": "FunctionDefinition", "parameters": {"id": 2205, "nodeType": "ParameterList", "parameters": [], "src": "969:2:12"}, "returnParameters": {"id": 2208, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2207, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2213, "src": "1003:14:12", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": {"typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes"}, "typeName": {"id": 2206, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1003:5:12", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "1002:16:12"}, "scope": 2219, "src": "952:99:12", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"constant": false, "documentation": {"id": 2214, "nodeType": "StructuredDocumentation", "src": "1057:254:12", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}, "id": 2218, "mutability": "mutable", "name": "__gap", "nameLocation": "1336:5:12", "nodeType": "VariableDeclaration", "scope": 2219, "src": "1316:25:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$50_storage", "typeString": "uint256[50]"}, "typeName": {"baseType": {"id": 2215, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1316:7:12", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2217, "length": {"hexValue": "3530", "id": 2216, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1324:2:12", "typeDescriptions": {"typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50"}, "value": "50"}, "nodeType": "ArrayTypeName", "src": "1316:11:12", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", "typeString": "uint256[50]"}}, "visibility": "private"}], "scope": 2220, "src": "651:693:12", "usedErrors": []}], "src": "86:1259:12"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "exportedSymbols": {"StringsUpgradeable": [2445]}, "id": 2446, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 2221, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "101:23:13"}, {"abstract": false, "baseContracts": [], "canonicalName": "StringsUpgradeable", "contractDependencies": [], "contractKind": "library", "documentation": {"id": 2222, "nodeType": "StructuredDocumentation", "src": "126:34:13", "text": " @dev String operations."}, "fullyImplemented": true, "id": 2445, "linearizedBaseContracts": [2445], "name": "StringsUpgradeable", "nameLocation": "169:18:13", "nodeType": "ContractDefinition", "nodes": [{"constant": true, "id": 2225, "mutability": "constant", "name": "_HEX_SYMBOLS", "nameLocation": "219:12:13", "nodeType": "VariableDeclaration", "scope": 2445, "src": "194:58:13", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}, "typeName": {"id": 2223, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "194:7:13", "typeDescriptions": {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}}, "value": {"hexValue": "30313233343536373839616263646566", "id": 2224, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "234:18:13", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", "typeString": "literal_string \"0123456789abcdef\""}, "value": "0123456789abcdef"}, "visibility": "private"}, {"constant": true, "id": 2228, "mutability": "constant", "name": "_ADDRESS_LENGTH", "nameLocation": "281:15:13", "nodeType": "VariableDeclaration", "scope": 2445, "src": "258:43:13", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 2226, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "258:5:13", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "value": {"hexValue": "3230", "id": 2227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "299:2:13", "typeDescriptions": {"typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20"}, "value": "20"}, "visibility": "private"}, {"body": {"id": 2306, "nodeType": "Block", "src": "474:632:13", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2236, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2231, "src": "676:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 2237, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "685:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "676:10:13", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2242, "nodeType": "IfStatement", "src": "672:51:13", "trueBody": {"id": 2241, "nodeType": "Block", "src": "688:35:13", "statements": [{"expression": {"hexValue": "30", "id": 2239, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "709:3:13", "typeDescriptions": {"typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", "typeString": "literal_string \"0\""}, "value": "0"}, "functionReturnParameters": 2235, "id": 2240, "nodeType": "Return", "src": "702:10:13"}]}}, {"assignments": [2244], "declarations": [{"constant": false, "id": 2244, "mutability": "mutable", "name": "temp", "nameLocation": "740:4:13", "nodeType": "VariableDeclaration", "scope": 2306, "src": "732:12:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2243, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "732:7:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 2246, "initialValue": {"id": 2245, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2231, "src": "747:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "732:20:13"}, {"assignments": [2248], "declarations": [{"constant": false, "id": 2248, "mutability": "mutable", "name": "digits", "nameLocation": "770:6:13", "nodeType": "VariableDeclaration", "scope": 2306, "src": "762:14:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2247, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "762:7:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 2249, "nodeType": "VariableDeclarationStatement", "src": "762:14:13"}, {"body": {"id": 2260, "nodeType": "Block", "src": "804:57:13", "statements": [{"expression": {"id": 2254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "818:8:13", "subExpression": {"id": 2253, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2248, "src": "818:6:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2255, "nodeType": "ExpressionStatement", "src": "818:8:13"}, {"expression": {"id": 2258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 2256, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2244, "src": "840:4:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "/=", "rightHandSide": {"hexValue": "3130", "id": 2257, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "848:2:13", "typeDescriptions": {"typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10"}, "value": "10"}, "src": "840:10:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2259, "nodeType": "ExpressionStatement", "src": "840:10:13"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2250, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2244, "src": "793:4:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 2251, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "801:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "793:9:13", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2261, "nodeType": "WhileStatement", "src": "786:75:13"}, {"assignments": [2263], "declarations": [{"constant": false, "id": 2263, "mutability": "mutable", "name": "buffer", "nameLocation": "883:6:13", "nodeType": "VariableDeclaration", "scope": 2306, "src": "870:19:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2262, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "870:5:13", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 2268, "initialValue": {"arguments": [{"id": 2266, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2248, "src": "902:6:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 2265, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "892:9:13", "typeDescriptions": {"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes memory)"}, "typeName": {"id": 2264, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "896:5:13", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}}, "id": 2267, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "892:17:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "nodeType": "VariableDeclarationStatement", "src": "870:39:13"}, {"body": {"id": 2299, "nodeType": "Block", "src": "938:131:13", "statements": [{"expression": {"id": 2274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 2272, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2248, "src": "952:6:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"hexValue": "31", "id": 2273, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "962:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "952:11:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2275, "nodeType": "ExpressionStatement", "src": "952:11:13"}, {"expression": {"id": 2293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 2276, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2263, "src": "977:6:13", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 2278, "indexExpression": {"id": 2277, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2248, "src": "984:6:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "977:14:13", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"hexValue": "3438", "id": 2283, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1007:2:13", "typeDescriptions": {"typeIdentifier": "t_rational_48_by_1", "typeString": "int_const 48"}, "value": "48"}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2288, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2286, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2231, "src": "1020:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": {"hexValue": "3130", "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1028:2:13", "typeDescriptions": {"typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10"}, "value": "10"}, "src": "1020:10:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 2285, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1012:7:13", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)"}, "typeName": {"id": 2284, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1012:7:13", "typeDescriptions": {}}}, "id": 2289, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1012:19:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1007:24:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 2282, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1001:5:13", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)"}, "typeName": {"id": 2281, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1001:5:13", "typeDescriptions": {}}}, "id": 2291, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1001:31:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint8", "typeString": "uint8"}], "id": 2280, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "994:6:13", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)"}, "typeName": {"id": 2279, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "994:6:13", "typeDescriptions": {}}}, "id": 2292, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "994:39:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "src": "977:56:13", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "id": 2294, "nodeType": "ExpressionStatement", "src": "977:56:13"}, {"expression": {"id": 2297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 2295, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2231, "src": "1047:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "/=", "rightHandSide": {"hexValue": "3130", "id": 2296, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1056:2:13", "typeDescriptions": {"typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10"}, "value": "10"}, "src": "1047:11:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2298, "nodeType": "ExpressionStatement", "src": "1047:11:13"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2269, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2231, "src": "926:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 2270, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "935:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "926:10:13", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2300, "nodeType": "WhileStatement", "src": "919:150:13"}, {"expression": {"arguments": [{"id": 2303, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2263, "src": "1092:6:13", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 2302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1085:6:13", "typeDescriptions": {"typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)"}, "typeName": {"id": 2301, "name": "string", "nodeType": "ElementaryTypeName", "src": "1085:6:13", "typeDescriptions": {}}}, "id": 2304, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1085:14:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 2235, "id": 2305, "nodeType": "Return", "src": "1078:21:13"}]}, "documentation": {"id": 2229, "nodeType": "StructuredDocumentation", "src": "308:90:13", "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation."}, "id": 2307, "implemented": true, "kind": "function", "modifiers": [], "name": "toString", "nameLocation": "412:8:13", "nodeType": "FunctionDefinition", "parameters": {"id": 2232, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2231, "mutability": "mutable", "name": "value", "nameLocation": "429:5:13", "nodeType": "VariableDeclaration", "scope": 2307, "src": "421:13:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2230, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "421:7:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "420:15:13"}, "returnParameters": {"id": 2235, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2234, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2307, "src": "459:13:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2233, "name": "string", "nodeType": "ElementaryTypeName", "src": "459:6:13", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "458:15:13"}, "scope": 2445, "src": "403:703:13", "stateMutability": "pure", "virtual": false, "visibility": "internal"}, {"body": {"id": 2347, "nodeType": "Block", "src": "1285:255:13", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2315, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2310, "src": "1299:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 2316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1308:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1299:10:13", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2321, "nodeType": "IfStatement", "src": "1295:54:13", "trueBody": {"id": 2320, "nodeType": "Block", "src": "1311:38:13", "statements": [{"expression": {"hexValue": "30783030", "id": 2318, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1332:6:13", "typeDescriptions": {"typeIdentifier": "t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4", "typeString": "literal_string \"0x00\""}, "value": "0x00"}, "functionReturnParameters": 2314, "id": 2319, "nodeType": "Return", "src": "1325:13:13"}]}}, {"assignments": [2323], "declarations": [{"constant": false, "id": 2323, "mutability": "mutable", "name": "temp", "nameLocation": "1366:4:13", "nodeType": "VariableDeclaration", "scope": 2347, "src": "1358:12:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2322, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1358:7:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 2325, "initialValue": {"id": 2324, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2310, "src": "1373:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "1358:20:13"}, {"assignments": [2327], "declarations": [{"constant": false, "id": 2327, "mutability": "mutable", "name": "length", "nameLocation": "1396:6:13", "nodeType": "VariableDeclaration", "scope": 2347, "src": "1388:14:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2326, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1388:7:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 2329, "initialValue": {"hexValue": "30", "id": 2328, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1405:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "1388:18:13"}, {"body": {"id": 2340, "nodeType": "Block", "src": "1434:57:13", "statements": [{"expression": {"id": 2334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "1448:8:13", "subExpression": {"id": 2333, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2327, "src": "1448:6:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2335, "nodeType": "ExpressionStatement", "src": "1448:8:13"}, {"expression": {"id": 2338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 2336, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2323, "src": "1470:4:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": {"hexValue": "38", "id": 2337, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1479:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8"}, "value": "8"}, "src": "1470:10:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2339, "nodeType": "ExpressionStatement", "src": "1470:10:13"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2330, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2323, "src": "1423:4:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 2331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1431:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1423:9:13", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2341, "nodeType": "WhileStatement", "src": "1416:75:13"}, {"expression": {"arguments": [{"id": 2343, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2310, "src": "1519:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 2344, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2327, "src": "1526:6:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 2342, "name": "toHexString", "nodeType": "Identifier", "overloadedDeclarations": [2348, 2424, 2444], "referencedDeclaration": 2424, "src": "1507:11:13", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", "typeString": "function (uint256,uint256) pure returns (string memory)"}}, "id": 2345, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1507:26:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 2314, "id": 2346, "nodeType": "Return", "src": "1500:33:13"}]}, "documentation": {"id": 2308, "nodeType": "StructuredDocumentation", "src": "1112:94:13", "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."}, "id": 2348, "implemented": true, "kind": "function", "modifiers": [], "name": "toHexString", "nameLocation": "1220:11:13", "nodeType": "FunctionDefinition", "parameters": {"id": 2311, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2310, "mutability": "mutable", "name": "value", "nameLocation": "1240:5:13", "nodeType": "VariableDeclaration", "scope": 2348, "src": "1232:13:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2309, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1232:7:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1231:15:13"}, "returnParameters": {"id": 2314, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2313, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2348, "src": "1270:13:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2312, "name": "string", "nodeType": "ElementaryTypeName", "src": "1270:6:13", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1269:15:13"}, "scope": 2445, "src": "1211:329:13", "stateMutability": "pure", "virtual": false, "visibility": "internal"}, {"body": {"id": 2423, "nodeType": "Block", "src": "1753:351:13", "statements": [{"assignments": [2359], "declarations": [{"constant": false, "id": 2359, "mutability": "mutable", "name": "buffer", "nameLocation": "1776:6:13", "nodeType": "VariableDeclaration", "scope": 2423, "src": "1763:19:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2358, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1763:5:13", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 2368, "initialValue": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"hexValue": "32", "id": 2362, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1795:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2"}, "value": "2"}, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": {"id": 2363, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2353, "src": "1799:6:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1795:10:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"hexValue": "32", "id": 2365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1808:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2"}, "value": "2"}, "src": "1795:14:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 2361, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "1785:9:13", "typeDescriptions": {"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes memory)"}, "typeName": {"id": 2360, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1789:5:13", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}}, "id": 2367, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1785:25:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "nodeType": "VariableDeclarationStatement", "src": "1763:47:13"}, {"expression": {"id": 2373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 2369, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2359, "src": "1820:6:13", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 2371, "indexExpression": {"hexValue": "30", "id": 2370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1827:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1820:9:13", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "30", "id": 2372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1832:3:13", "typeDescriptions": {"typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", "typeString": "literal_string \"0\""}, "value": "0"}, "src": "1820:15:13", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "id": 2374, "nodeType": "ExpressionStatement", "src": "1820:15:13"}, {"expression": {"id": 2379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 2375, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2359, "src": "1845:6:13", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 2377, "indexExpression": {"hexValue": "31", "id": 2376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1852:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1845:9:13", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "78", "id": 2378, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1857:3:13", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", "typeString": "literal_string \"x\""}, "value": "x"}, "src": "1845:15:13", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "id": 2380, "nodeType": "ExpressionStatement", "src": "1845:15:13"}, {"body": {"id": 2409, "nodeType": "Block", "src": "1915:87:13", "statements": [{"expression": {"id": 2403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 2395, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2359, "src": "1929:6:13", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 2397, "indexExpression": {"id": 2396, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2382, "src": "1936:1:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1929:9:13", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"baseExpression": {"id": 2398, "name": "_HEX_SYMBOLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2225, "src": "1941:12:13", "typeDescriptions": {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}}, "id": 2402, "indexExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2399, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2351, "src": "1954:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": {"hexValue": "307866", "id": 2400, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1962:3:13", "typeDescriptions": {"typeIdentifier": "t_rational_15_by_1", "typeString": "int_const 15"}, "value": "0xf"}, "src": "1954:11:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1941:25:13", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "src": "1929:37:13", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "id": 2404, "nodeType": "ExpressionStatement", "src": "1929:37:13"}, {"expression": {"id": 2407, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 2405, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2351, "src": "1980:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": {"hexValue": "34", "id": 2406, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1990:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4"}, "value": "4"}, "src": "1980:11:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2408, "nodeType": "ExpressionStatement", "src": "1980:11:13"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2389, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2382, "src": "1903:1:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "31", "id": 2390, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1907:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "1903:5:13", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2410, "initializationExpression": {"assignments": [2382], "declarations": [{"constant": false, "id": 2382, "mutability": "mutable", "name": "i", "nameLocation": "1883:1:13", "nodeType": "VariableDeclaration", "scope": 2410, "src": "1875:9:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2381, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1875:7:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 2388, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"hexValue": "32", "id": 2383, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1887:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2"}, "value": "2"}, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": {"id": 2384, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2353, "src": "1891:6:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1887:10:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"hexValue": "31", "id": 2386, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1900:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "1887:14:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "1875:26:13"}, "loopExpression": {"expression": {"id": 2393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "--", "prefix": true, "src": "1910:3:13", "subExpression": {"id": 2392, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2382, "src": "1912:1:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2394, "nodeType": "ExpressionStatement", "src": "1910:3:13"}, "nodeType": "ForStatement", "src": "1870:132:13"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2412, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2351, "src": "2019:5:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 2413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2028:1:13", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "2019:10:13", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", "id": 2415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2031:34:13", "typeDescriptions": {"typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", "typeString": "literal_string \"Strings: hex length insufficient\""}, "value": "Strings: hex length insufficient"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", "typeString": "literal_string \"Strings: hex length insufficient\""}], "id": 2411, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2011:7:13", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 2416, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2011:55:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2417, "nodeType": "ExpressionStatement", "src": "2011:55:13"}, {"expression": {"arguments": [{"id": 2420, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2359, "src": "2090:6:13", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 2419, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2083:6:13", "typeDescriptions": {"typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)"}, "typeName": {"id": 2418, "name": "string", "nodeType": "ElementaryTypeName", "src": "2083:6:13", "typeDescriptions": {}}}, "id": 2421, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2083:14:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 2357, "id": 2422, "nodeType": "Return", "src": "2076:21:13"}]}, "documentation": {"id": 2349, "nodeType": "StructuredDocumentation", "src": "1546:112:13", "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."}, "id": 2424, "implemented": true, "kind": "function", "modifiers": [], "name": "toHexString", "nameLocation": "1672:11:13", "nodeType": "FunctionDefinition", "parameters": {"id": 2354, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2351, "mutability": "mutable", "name": "value", "nameLocation": "1692:5:13", "nodeType": "VariableDeclaration", "scope": 2424, "src": "1684:13:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2350, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1684:7:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 2353, "mutability": "mutable", "name": "length", "nameLocation": "1707:6:13", "nodeType": "VariableDeclaration", "scope": 2424, "src": "1699:14:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2352, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1699:7:13", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1683:31:13"}, "returnParameters": {"id": 2357, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2356, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2424, "src": "1738:13:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2355, "name": "string", "nodeType": "ElementaryTypeName", "src": "1738:6:13", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1737:15:13"}, "scope": 2445, "src": "1663:441:13", "stateMutability": "pure", "virtual": false, "visibility": "internal"}, {"body": {"id": 2443, "nodeType": "Block", "src": "2329:76:13", "statements": [{"expression": {"arguments": [{"arguments": [{"arguments": [{"id": 2437, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2427, "src": "2374:4:13", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 2436, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2366:7:13", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint160_$", "typeString": "type(uint160)"}, "typeName": {"id": 2435, "name": "uint160", "nodeType": "ElementaryTypeName", "src": "2366:7:13", "typeDescriptions": {}}}, "id": 2438, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2366:13:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint160", "typeString": "uint160"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint160", "typeString": "uint160"}], "id": 2434, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2358:7:13", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)"}, "typeName": {"id": 2433, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2358:7:13", "typeDescriptions": {}}}, "id": 2439, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2358:22:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 2440, "name": "_ADDRESS_LENGTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2228, "src": "2382:15:13", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint8", "typeString": "uint8"}], "id": 2432, "name": "toHexString", "nodeType": "Identifier", "overloadedDeclarations": [2348, 2424, 2444], "referencedDeclaration": 2424, "src": "2346:11:13", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", "typeString": "function (uint256,uint256) pure returns (string memory)"}}, "id": 2441, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2346:52:13", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 2431, "id": 2442, "nodeType": "Return", "src": "2339:59:13"}]}, "documentation": {"id": 2425, "nodeType": "StructuredDocumentation", "src": "2110:141:13", "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."}, "id": 2444, "implemented": true, "kind": "function", "modifiers": [], "name": "toHexString", "nameLocation": "2265:11:13", "nodeType": "FunctionDefinition", "parameters": {"id": 2428, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2427, "mutability": "mutable", "name": "addr", "nameLocation": "2285:4:13", "nodeType": "VariableDeclaration", "scope": 2444, "src": "2277:12:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2426, "name": "address", "nodeType": "ElementaryTypeName", "src": "2277:7:13", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2276:14:13"}, "returnParameters": {"id": 2431, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2430, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2444, "src": "2314:13:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2429, "name": "string", "nodeType": "ElementaryTypeName", "src": "2314:6:13", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2313:15:13"}, "scope": 2445, "src": "2256:149:13", "stateMutability": "pure", "virtual": false, "visibility": "internal"}], "scope": 2446, "src": "161:2246:13", "usedErrors": []}], "src": "101:2307:13"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol", "exportedSymbols": {"ERC165CheckerUpgradeable": [2639], "IERC165Upgradeable": [2695]}, "id": 2640, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 2447, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "121:23:14"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", "file": "./IERC165Upgradeable.sol", "id": 2448, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2640, "sourceUnit": 2696, "src": "146:34:14", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [], "canonicalName": "ERC165CheckerUpgradeable", "contractDependencies": [], "contractKind": "library", "documentation": {"id": 2449, "nodeType": "StructuredDocumentation", "src": "182:277:14", "text": " @dev Library used to query support of an interface declared via {IERC165}.\n Note that these functions return the actual result of the query: they do not\n `revert` if an interface is not supported. It is up to the caller to decide\n what to do in these cases."}, "fullyImplemented": true, "id": 2639, "linearizedBaseContracts": [2639], "name": "ERC165CheckerUpgradeable", "nameLocation": "468:24:14", "nodeType": "ContractDefinition", "nodes": [{"constant": true, "id": 2452, "mutability": "constant", "name": "_INTERFACE_ID_INVALID", "nameLocation": "597:21:14", "nodeType": "VariableDeclaration", "scope": 2639, "src": "573:58:14", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 2450, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "573:6:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "value": {"hexValue": "30786666666666666666", "id": 2451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "621:10:14", "typeDescriptions": {"typeIdentifier": "t_rational_4294967295_by_1", "typeString": "int_const 4294967295"}, "value": "0xffffffff"}, "visibility": "private"}, {"body": {"id": 2474, "nodeType": "Block", "src": "796:352:14", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 2472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"id": 2461, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2455, "src": "1022:7:14", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"expression": {"arguments": [{"id": 2463, "name": "IERC165Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2695, "src": "1036:18:14", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC165Upgradeable_$2695_$", "typeString": "type(contract IERC165Upgradeable)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_IERC165Upgradeable_$2695_$", "typeString": "type(contract IERC165Upgradeable)"}], "id": 2462, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "1031:4:14", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 2464, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1031:24:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_IERC165Upgradeable_$2695", "typeString": "type(contract IERC165Upgradeable)"}}, "id": 2465, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1056:11:14", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "1031:36:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "id": 2460, "name": "_supportsERC165Interface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2638, "src": "997:24:14", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", "typeString": "function (address,bytes4) view returns (bool)"}}, "id": 2466, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "997:71:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"id": 2471, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1084:57:14", "subExpression": {"arguments": [{"id": 2468, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2455, "src": "1110:7:14", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 2469, "name": "_INTERFACE_ID_INVALID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2452, "src": "1119:21:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "id": 2467, "name": "_supportsERC165Interface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2638, "src": "1085:24:14", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", "typeString": "function (address,bytes4) view returns (bool)"}}, "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1085:56:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "997:144:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 2459, "id": 2473, "nodeType": "Return", "src": "978:163:14"}]}, "documentation": {"id": 2453, "nodeType": "StructuredDocumentation", "src": "638:83:14", "text": " @dev Returns true if `account` supports the {IERC165} interface,"}, "id": 2475, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsERC165", "nameLocation": "735:14:14", "nodeType": "FunctionDefinition", "parameters": {"id": 2456, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2455, "mutability": "mutable", "name": "account", "nameLocation": "758:7:14", "nodeType": "VariableDeclaration", "scope": 2475, "src": "750:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2454, "name": "address", "nodeType": "ElementaryTypeName", "src": "750:7:14", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "749:17:14"}, "returnParameters": {"id": 2459, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2458, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2475, "src": "790:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2457, "name": "bool", "nodeType": "ElementaryTypeName", "src": "790:4:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "789:6:14"}, "scope": 2639, "src": "726:422:14", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 2494, "nodeType": "Block", "src": "1459:181:14", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 2492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"id": 2486, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2478, "src": "1575:7:14", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 2485, "name": "supportsERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2475, "src": "1560:14:14", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)"}}, "id": 2487, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1560:23:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"arguments": [{"id": 2489, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2478, "src": "1612:7:14", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 2490, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2480, "src": "1621:11:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "id": 2488, "name": "_supportsERC165Interface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2638, "src": "1587:24:14", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", "typeString": "function (address,bytes4) view returns (bool)"}}, "id": 2491, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1587:46:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "1560:73:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 2484, "id": 2493, "nodeType": "Return", "src": "1553:80:14"}]}, "documentation": {"id": 2476, "nodeType": "StructuredDocumentation", "src": "1154:207:14", "text": " @dev Returns true if `account` supports the interface defined by\n `interfaceId`. Support for {IERC165} itself is queried automatically.\n See {IERC165-supportsInterface}."}, "id": 2495, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "1375:17:14", "nodeType": "FunctionDefinition", "parameters": {"id": 2481, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2478, "mutability": "mutable", "name": "account", "nameLocation": "1401:7:14", "nodeType": "VariableDeclaration", "scope": 2495, "src": "1393:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2477, "name": "address", "nodeType": "ElementaryTypeName", "src": "1393:7:14", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2480, "mutability": "mutable", "name": "interfaceId", "nameLocation": "1417:11:14", "nodeType": "VariableDeclaration", "scope": 2495, "src": "1410:18:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 2479, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1410:6:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "1392:37:14"}, "returnParameters": {"id": 2484, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2483, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2495, "src": "1453:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2482, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1453:4:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "1452:6:14"}, "scope": 2639, "src": "1366:274:14", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 2550, "nodeType": "Block", "src": "2170:552:14", "statements": [{"assignments": [2511], "declarations": [{"constant": false, "id": 2511, "mutability": "mutable", "name": "interfaceIdsSupported", "nameLocation": "2293:21:14", "nodeType": "VariableDeclaration", "scope": 2550, "src": "2279:35:14", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[]"}, "typeName": {"baseType": {"id": 2509, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2279:4:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2510, "nodeType": "ArrayTypeName", "src": "2279:6:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]"}}, "visibility": "internal"}], "id": 2518, "initialValue": {"arguments": [{"expression": {"id": 2515, "name": "interfaceIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "2328:12:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", "typeString": "bytes4[] memory"}}, "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2341:6:14", "memberName": "length", "nodeType": "MemberAccess", "src": "2328:19:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 2514, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "2317:10:14", "typeDescriptions": {"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bool[] memory)"}, "typeName": {"baseType": {"id": 2512, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2321:4:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2513, "nodeType": "ArrayTypeName", "src": "2321:6:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]"}}}, "id": 2517, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2317:31:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory"}}, "nodeType": "VariableDeclarationStatement", "src": "2279:69:14"}, {"condition": {"arguments": [{"id": 2520, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2498, "src": "2420:7:14", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 2519, "name": "supportsERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2475, "src": "2405:14:14", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)"}}, "id": 2521, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2405:23:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2547, "nodeType": "IfStatement", "src": "2401:276:14", "trueBody": {"id": 2546, "nodeType": "Block", "src": "2430:247:14", "statements": [{"body": {"id": 2544, "nodeType": "Block", "src": "2557:110:14", "statements": [{"expression": {"id": 2542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 2533, "name": "interfaceIdsSupported", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2511, "src": "2575:21:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory"}}, "id": 2535, "indexExpression": {"id": 2534, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2523, "src": "2597:1:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2575:24:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"id": 2537, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2498, "src": "2627:7:14", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"baseExpression": {"id": 2538, "name": "interfaceIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "2636:12:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", "typeString": "bytes4[] memory"}}, "id": 2540, "indexExpression": {"id": 2539, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2523, "src": "2649:1:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2636:15:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "id": 2536, "name": "_supportsERC165Interface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2638, "src": "2602:24:14", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", "typeString": "function (address,bytes4) view returns (bool)"}}, "id": 2541, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2602:50:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "2575:77:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2543, "nodeType": "ExpressionStatement", "src": "2575:77:14"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2526, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2523, "src": "2527:1:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 2527, "name": "interfaceIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2501, "src": "2531:12:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", "typeString": "bytes4[] memory"}}, "id": 2528, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2544:6:14", "memberName": "length", "nodeType": "MemberAccess", "src": "2531:19:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2527:23:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2545, "initializationExpression": {"assignments": [2523], "declarations": [{"constant": false, "id": 2523, "mutability": "mutable", "name": "i", "nameLocation": "2520:1:14", "nodeType": "VariableDeclaration", "scope": 2545, "src": "2512:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2522, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2512:7:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 2525, "initialValue": {"hexValue": "30", "id": 2524, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2524:1:14", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "2512:13:14"}, "loopExpression": {"expression": {"id": 2531, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "2552:3:14", "subExpression": {"id": 2530, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2523, "src": "2552:1:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2532, "nodeType": "ExpressionStatement", "src": "2552:3:14"}, "nodeType": "ForStatement", "src": "2507:160:14"}]}}, {"expression": {"id": 2548, "name": "interfaceIdsSupported", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2511, "src": "2694:21:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory"}}, "functionReturnParameters": 2506, "id": 2549, "nodeType": "Return", "src": "2687:28:14"}]}, "documentation": {"id": 2496, "nodeType": "StructuredDocumentation", "src": "1646:374:14", "text": " @dev Returns a boolean array where each value corresponds to the\n interfaces passed in and whether they're supported or not. This allows\n you to batch check interfaces for a contract where your expectation\n is that some interfaces may not be supported.\n See {IERC165-supportsInterface}.\n _Available since v3.4._"}, "id": 2551, "implemented": true, "kind": "function", "modifiers": [], "name": "getSupportedInterfaces", "nameLocation": "2034:22:14", "nodeType": "FunctionDefinition", "parameters": {"id": 2502, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2498, "mutability": "mutable", "name": "account", "nameLocation": "2065:7:14", "nodeType": "VariableDeclaration", "scope": 2551, "src": "2057:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2497, "name": "address", "nodeType": "ElementaryTypeName", "src": "2057:7:14", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2501, "mutability": "mutable", "name": "interfaceIds", "nameLocation": "2090:12:14", "nodeType": "VariableDeclaration", "scope": 2551, "src": "2074:28:14", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", "typeString": "bytes4[]"}, "typeName": {"baseType": {"id": 2499, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2074:6:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "id": 2500, "nodeType": "ArrayTypeName", "src": "2074:8:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", "typeString": "bytes4[]"}}, "visibility": "internal"}], "src": "2056:47:14"}, "returnParameters": {"id": 2506, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2505, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2551, "src": "2151:13:14", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[]"}, "typeName": {"baseType": {"id": 2503, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2151:4:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2504, "nodeType": "ArrayTypeName", "src": "2151:6:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]"}}, "visibility": "internal"}], "src": "2150:15:14"}, "scope": 2639, "src": "2025:697:14", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 2596, "nodeType": "Block", "src": "3164:429:14", "statements": [{"condition": {"id": 2565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3220:24:14", "subExpression": {"arguments": [{"id": 2563, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2554, "src": "3236:7:14", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 2562, "name": "supportsERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2475, "src": "3221:14:14", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)"}}, "id": 2564, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3221:23:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2569, "nodeType": "IfStatement", "src": "3216:67:14", "trueBody": {"id": 2568, "nodeType": "Block", "src": "3246:37:14", "statements": [{"expression": {"hexValue": "66616c7365", "id": 2566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3267:5:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "functionReturnParameters": 2561, "id": 2567, "nodeType": "Return", "src": "3260:12:14"}]}}, {"body": {"id": 2592, "nodeType": "Block", "src": "3403:126:14", "statements": [{"condition": {"id": 2587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3421:51:14", "subExpression": {"arguments": [{"id": 2582, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2554, "src": "3447:7:14", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"baseExpression": {"id": 2583, "name": "interfaceIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2557, "src": "3456:12:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", "typeString": "bytes4[] memory"}}, "id": 2585, "indexExpression": {"id": 2584, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2571, "src": "3469:1:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3456:15:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "id": 2581, "name": "_supportsERC165Interface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2638, "src": "3422:24:14", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", "typeString": "function (address,bytes4) view returns (bool)"}}, "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3422:50:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2591, "nodeType": "IfStatement", "src": "3417:102:14", "trueBody": {"id": 2590, "nodeType": "Block", "src": "3474:45:14", "statements": [{"expression": {"hexValue": "66616c7365", "id": 2588, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3499:5:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "functionReturnParameters": 2561, "id": 2589, "nodeType": "Return", "src": "3492:12:14"}]}}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2574, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2571, "src": "3373:1:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 2575, "name": "interfaceIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2557, "src": "3377:12:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", "typeString": "bytes4[] memory"}}, "id": 2576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3390:6:14", "memberName": "length", "nodeType": "MemberAccess", "src": "3377:19:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3373:23:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 2593, "initializationExpression": {"assignments": [2571], "declarations": [{"constant": false, "id": 2571, "mutability": "mutable", "name": "i", "nameLocation": "3366:1:14", "nodeType": "VariableDeclaration", "scope": 2593, "src": "3358:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2570, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3358:7:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 2573, "initialValue": {"hexValue": "30", "id": 2572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3370:1:14", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "3358:13:14"}, "loopExpression": {"expression": {"id": 2579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3398:3:14", "subExpression": {"id": 2578, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2571, "src": "3398:1:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2580, "nodeType": "ExpressionStatement", "src": "3398:3:14"}, "nodeType": "ForStatement", "src": "3353:176:14"}, {"expression": {"hexValue": "74727565", "id": 2594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3582:4:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "functionReturnParameters": 2561, "id": 2595, "nodeType": "Return", "src": "3575:11:14"}]}, "documentation": {"id": 2552, "nodeType": "StructuredDocumentation", "src": "2728:324:14", "text": " @dev Returns true if `account` supports all the interfaces defined in\n `interfaceIds`. Support for {IERC165} itself is queried automatically.\n Batch-querying can lead to gas savings by skipping repeated checks for\n {IERC165} support.\n See {IERC165-supportsInterface}."}, "id": 2597, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsAllInterfaces", "nameLocation": "3066:21:14", "nodeType": "FunctionDefinition", "parameters": {"id": 2558, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2554, "mutability": "mutable", "name": "account", "nameLocation": "3096:7:14", "nodeType": "VariableDeclaration", "scope": 2597, "src": "3088:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2553, "name": "address", "nodeType": "ElementaryTypeName", "src": "3088:7:14", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2557, "mutability": "mutable", "name": "interfaceIds", "nameLocation": "3121:12:14", "nodeType": "VariableDeclaration", "scope": 2597, "src": "3105:28:14", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", "typeString": "bytes4[]"}, "typeName": {"baseType": {"id": 2555, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3105:6:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "id": 2556, "nodeType": "ArrayTypeName", "src": "3105:8:14", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", "typeString": "bytes4[]"}}, "visibility": "internal"}], "src": "3087:47:14"}, "returnParameters": {"id": 2561, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2560, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2597, "src": "3158:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2559, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3158:4:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "3157:6:14"}, "scope": 2639, "src": "3057:536:14", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 2637, "nodeType": "Block", "src": "4355:550:14", "statements": [{"assignments": [2608], "declarations": [{"constant": false, "id": 2608, "mutability": "mutable", "name": "encodedParams", "nameLocation": "4402:13:14", "nodeType": "VariableDeclaration", "scope": 2637, "src": "4389:26:14", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 2607, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4389:5:14", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 2616, "initialValue": {"arguments": [{"expression": {"expression": {"id": 2611, "name": "IERC165Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2695, "src": "4441:18:14", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC165Upgradeable_$2695_$", "typeString": "type(contract IERC165Upgradeable)"}}, "id": 2612, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4460:17:14", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 2694, "src": "4441:36:14", "typeDescriptions": {"typeIdentifier": "t_function_declaration_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function IERC165Upgradeable.supportsInterface(bytes4) view returns (bool)"}}, "id": 2613, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4478:8:14", "memberName": "selector", "nodeType": "MemberAccess", "src": "4441:45:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, {"id": 2614, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2602, "src": "4488:11:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "expression": {"id": 2609, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4418:3:14", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 2610, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4422:18:14", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "4418:22:14", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)"}}, "id": 2615, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4418:82:14", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "nodeType": "VariableDeclarationStatement", "src": "4389:111:14"}, {"assignments": [2618], "declarations": [{"constant": false, "id": 2618, "mutability": "mutable", "name": "success", "nameLocation": "4547:7:14", "nodeType": "VariableDeclaration", "scope": 2637, "src": "4542:12:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2617, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4542:4:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "id": 2619, "nodeType": "VariableDeclarationStatement", "src": "4542:12:14"}, {"assignments": [2621], "declarations": [{"constant": false, "id": 2621, "mutability": "mutable", "name": "returnSize", "nameLocation": "4572:10:14", "nodeType": "VariableDeclaration", "scope": 2637, "src": "4564:18:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2620, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4564:7:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 2622, "nodeType": "VariableDeclarationStatement", "src": "4564:18:14"}, {"assignments": [2624], "declarations": [{"constant": false, "id": 2624, "mutability": "mutable", "name": "returnValue", "nameLocation": "4600:11:14", "nodeType": "VariableDeclaration", "scope": 2637, "src": "4592:19:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2623, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4592:7:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 2625, "nodeType": "VariableDeclarationStatement", "src": "4592:19:14"}, {"AST": {"nodeType": "YulBlock", "src": "4630:203:14", "statements": [{"nodeType": "YulAssignment", "src": "4644:97:14", "value": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4666:5:14", "type": "", "value": "30000"}, {"name": "account", "nodeType": "YulIdentifier", "src": "4673:7:14"}, {"arguments": [{"name": "encodedParams", "nodeType": "YulIdentifier", "src": "4686:13:14"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4701:4:14", "type": "", "value": "0x20"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "4682:3:14"}, "nodeType": "YulFunctionCall", "src": "4682:24:14"}, {"arguments": [{"name": "encodedParams", "nodeType": "YulIdentifier", "src": "4714:13:14"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "4708:5:14"}, "nodeType": "YulFunctionCall", "src": "4708:20:14"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4730:4:14", "type": "", "value": "0x00"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4736:4:14", "type": "", "value": "0x20"}], "functionName": {"name": "staticcall", "nodeType": "YulIdentifier", "src": "4655:10:14"}, "nodeType": "YulFunctionCall", "src": "4655:86:14"}, "variableNames": [{"name": "success", "nodeType": "YulIdentifier", "src": "4644:7:14"}]}, {"nodeType": "YulAssignment", "src": "4754:30:14", "value": {"arguments": [], "functionName": {"name": "returndatasize", "nodeType": "YulIdentifier", "src": "4768:14:14"}, "nodeType": "YulFunctionCall", "src": "4768:16:14"}, "variableNames": [{"name": "returnSize", "nodeType": "YulIdentifier", "src": "4754:10:14"}]}, {"nodeType": "YulAssignment", "src": "4797:26:14", "value": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4818:4:14", "type": "", "value": "0x00"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "4812:5:14"}, "nodeType": "YulFunctionCall", "src": "4812:11:14"}, "variableNames": [{"name": "returnValue", "nodeType": "YulIdentifier", "src": "4797:11:14"}]}]}, "evmVersion": "london", "externalReferences": [{"declaration": 2600, "isOffset": false, "isSlot": false, "src": "4673:7:14", "valueSize": 1}, {"declaration": 2608, "isOffset": false, "isSlot": false, "src": "4686:13:14", "valueSize": 1}, {"declaration": 2608, "isOffset": false, "isSlot": false, "src": "4714:13:14", "valueSize": 1}, {"declaration": 2621, "isOffset": false, "isSlot": false, "src": "4754:10:14", "valueSize": 1}, {"declaration": 2624, "isOffset": false, "isSlot": false, "src": "4797:11:14", "valueSize": 1}, {"declaration": 2618, "isOffset": false, "isSlot": false, "src": "4644:7:14", "valueSize": 1}], "id": 2626, "nodeType": "InlineAssembly", "src": "4621:212:14"}, {"expression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 2635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 2631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2627, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2618, "src": "4850:7:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2628, "name": "returnSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2621, "src": "4861:10:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"hexValue": "30783230", "id": 2629, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4875:4:14", "typeDescriptions": {"typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32"}, "value": "0x20"}, "src": "4861:18:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "4850:29:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 2634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2632, "name": "returnValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2624, "src": "4883:11:14", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 2633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4897:1:14", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "4883:15:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "4850:48:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 2606, "id": 2636, "nodeType": "Return", "src": "4843:55:14"}]}, "documentation": {"id": 2598, "nodeType": "StructuredDocumentation", "src": "3599:652:14", "text": " @notice Query if a contract implements an interface, does not check ERC165 support\n @param account The address of the contract to query for support of an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @return true if the contract at account indicates support of the interface with\n identifier interfaceId, false otherwise\n @dev Assumes that account contains a contract that supports ERC165, otherwise\n the behavior of this method is undefined. This precondition can be checked\n with {supportsERC165}.\n Interface identification is specified in ERC-165."}, "id": 2638, "implemented": true, "kind": "function", "modifiers": [], "name": "_supportsERC165Interface", "nameLocation": "4265:24:14", "nodeType": "FunctionDefinition", "parameters": {"id": 2603, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2600, "mutability": "mutable", "name": "account", "nameLocation": "4298:7:14", "nodeType": "VariableDeclaration", "scope": 2638, "src": "4290:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2599, "name": "address", "nodeType": "ElementaryTypeName", "src": "4290:7:14", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2602, "mutability": "mutable", "name": "interfaceId", "nameLocation": "4314:11:14", "nodeType": "VariableDeclaration", "scope": 2638, "src": "4307:18:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 2601, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "4307:6:14", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "4289:37:14"}, "returnParameters": {"id": 2606, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2605, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2638, "src": "4349:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2604, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4349:4:14", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4348:6:14"}, "scope": 2639, "src": "4256:649:14", "stateMutability": "view", "virtual": false, "visibility": "private"}], "scope": 2640, "src": "460:4447:14", "usedErrors": []}], "src": "121:4787:14"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", "exportedSymbols": {"AddressUpgradeable": [2177], "ERC165Upgradeable": [2683], "IERC165Upgradeable": [2695], "Initializable": [282]}, "id": 2684, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 2641, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "99:23:15"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", "file": "./IERC165Upgradeable.sol", "id": 2642, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2684, "sourceUnit": 2696, "src": "124:34:15", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "file": "../../proxy/utils/Initializable.sol", "id": 2643, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2684, "sourceUnit": 283, "src": "159:45:15", "symbolAliases": [], "unitAlias": ""}, {"abstract": true, "baseContracts": [{"baseName": {"id": 2645, "name": "Initializable", "nameLocations": ["822:13:15"], "nodeType": "IdentifierPath", "referencedDeclaration": 282, "src": "822:13:15"}, "id": 2646, "nodeType": "InheritanceSpecifier", "src": "822:13:15"}, {"baseName": {"id": 2647, "name": "IERC165Upgradeable", "nameLocations": ["837:18:15"], "nodeType": "IdentifierPath", "referencedDeclaration": 2695, "src": "837:18:15"}, "id": 2648, "nodeType": "InheritanceSpecifier", "src": "837:18:15"}], "canonicalName": "ERC165Upgradeable", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 2644, "nodeType": "StructuredDocumentation", "src": "206:576:15", "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."}, "fullyImplemented": true, "id": 2683, "linearizedBaseContracts": [2683, 2695, 282], "name": "ERC165Upgradeable", "nameLocation": "801:17:15", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 2653, "nodeType": "Block", "src": "913:7:15", "statements": []}, "id": 2654, "implemented": true, "kind": "function", "modifiers": [{"id": 2651, "kind": "modifierInvocation", "modifierName": {"id": 2650, "name": "onlyInitializing", "nameLocations": ["896:16:15"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "896:16:15"}, "nodeType": "ModifierInvocation", "src": "896:16:15"}], "name": "__ERC165_init", "nameLocation": "871:13:15", "nodeType": "FunctionDefinition", "parameters": {"id": 2649, "nodeType": "ParameterList", "parameters": [], "src": "884:2:15"}, "returnParameters": {"id": 2652, "nodeType": "ParameterList", "parameters": [], "src": "913:0:15"}, "scope": 2683, "src": "862:58:15", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2659, "nodeType": "Block", "src": "987:7:15", "statements": []}, "id": 2660, "implemented": true, "kind": "function", "modifiers": [{"id": 2657, "kind": "modifierInvocation", "modifierName": {"id": 2656, "name": "onlyInitializing", "nameLocations": ["970:16:15"], "nodeType": "IdentifierPath", "referencedDeclaration": 245, "src": "970:16:15"}, "nodeType": "ModifierInvocation", "src": "970:16:15"}], "name": "__ERC165_init_unchained", "nameLocation": "935:23:15", "nodeType": "FunctionDefinition", "parameters": {"id": 2655, "nodeType": "ParameterList", "parameters": [], "src": "958:2:15"}, "returnParameters": {"id": 2658, "nodeType": "ParameterList", "parameters": [], "src": "987:0:15"}, "scope": 2683, "src": "926:68:15", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"baseFunctions": [2694], "body": {"id": 2676, "nodeType": "Block", "src": "1151:75:15", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "id": 2674, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2669, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2663, "src": "1168:11:15", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"arguments": [{"id": 2671, "name": "IERC165Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2695, "src": "1188:18:15", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC165Upgradeable_$2695_$", "typeString": "type(contract IERC165Upgradeable)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_IERC165Upgradeable_$2695_$", "typeString": "type(contract IERC165Upgradeable)"}], "id": 2670, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "1183:4:15", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 2672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1183:24:15", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_IERC165Upgradeable_$2695", "typeString": "type(contract IERC165Upgradeable)"}}, "id": 2673, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1208:11:15", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "1183:36:15", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "src": "1168:51:15", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 2668, "id": 2675, "nodeType": "Return", "src": "1161:58:15"}]}, "documentation": {"id": 2661, "nodeType": "StructuredDocumentation", "src": "999:56:15", "text": " @dev See {IERC165-supportsInterface}."}, "functionSelector": "01ffc9a7", "id": 2677, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "1069:17:15", "nodeType": "FunctionDefinition", "overrides": {"id": 2665, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1127:8:15"}, "parameters": {"id": 2664, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2663, "mutability": "mutable", "name": "interfaceId", "nameLocation": "1094:11:15", "nodeType": "VariableDeclaration", "scope": 2677, "src": "1087:18:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 2662, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1087:6:15", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "1086:20:15"}, "returnParameters": {"id": 2668, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2667, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2677, "src": "1145:4:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2666, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1145:4:15", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "1144:6:15"}, "scope": 2683, "src": "1060:166:15", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"constant": false, "documentation": {"id": 2678, "nodeType": "StructuredDocumentation", "src": "1232:254:15", "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}, "id": 2682, "mutability": "mutable", "name": "__gap", "nameLocation": "1511:5:15", "nodeType": "VariableDeclaration", "scope": 2683, "src": "1491:25:15", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$50_storage", "typeString": "uint256[50]"}, "typeName": {"baseType": {"id": 2679, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1491:7:15", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 2681, "length": {"hexValue": "3530", "id": 2680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1499:2:15", "typeDescriptions": {"typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50"}, "value": "50"}, "nodeType": "ArrayTypeName", "src": "1491:11:15", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", "typeString": "uint256[50]"}}, "visibility": "private"}], "scope": 2684, "src": "783:736:15", "usedErrors": []}], "src": "99:1421:15"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", "exportedSymbols": {"IERC165Upgradeable": [2695]}, "id": 2696, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 2685, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "100:23:16"}, {"abstract": false, "baseContracts": [], "canonicalName": "IERC165Upgradeable", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 2686, "nodeType": "StructuredDocumentation", "src": "125:279:16", "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."}, "fullyImplemented": false, "id": 2695, "linearizedBaseContracts": [2695], "name": "IERC165Upgradeable", "nameLocation": "415:18:16", "nodeType": "ContractDefinition", "nodes": [{"documentation": {"id": 2687, "nodeType": "StructuredDocumentation", "src": "440:340:16", "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."}, "functionSelector": "01ffc9a7", "id": 2694, "implemented": false, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "794:17:16", "nodeType": "FunctionDefinition", "parameters": {"id": 2690, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2689, "mutability": "mutable", "name": "interfaceId", "nameLocation": "819:11:16", "nodeType": "VariableDeclaration", "scope": 2694, "src": "812:18:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 2688, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "812:6:16", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "811:20:16"}, "returnParameters": {"id": 2693, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2692, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2694, "src": "855:4:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2691, "name": "bool", "nodeType": "ElementaryTypeName", "src": "855:4:16", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "854:6:16"}, "scope": 2695, "src": "785:76:16", "stateMutability": "view", "virtual": false, "visibility": "external"}], "scope": 2696, "src": "405:458:16", "usedErrors": []}], "src": "100:764:16"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/access/Ownable.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/access/Ownable.sol", "exportedSymbols": {"Context": [5047], "Ownable": [2808]}, "id": 2809, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 2697, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "102:23:17"}, {"absolutePath": "@openzeppelin/contracts/utils/Context.sol", "file": "../utils/Context.sol", "id": 2698, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2809, "sourceUnit": 5048, "src": "127:30:17", "symbolAliases": [], "unitAlias": ""}, {"abstract": true, "baseContracts": [{"baseName": {"id": 2700, "name": "Context", "nameLocations": ["683:7:17"], "nodeType": "IdentifierPath", "referencedDeclaration": 5047, "src": "683:7:17"}, "id": 2701, "nodeType": "InheritanceSpecifier", "src": "683:7:17"}], "canonicalName": "Ownable", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 2699, "nodeType": "StructuredDocumentation", "src": "159:494:17", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."}, "fullyImplemented": true, "id": 2808, "linearizedBaseContracts": [2808, 5047], "name": "Ownable", "nameLocation": "672:7:17", "nodeType": "ContractDefinition", "nodes": [{"constant": false, "id": 2703, "mutability": "mutable", "name": "_owner", "nameLocation": "713:6:17", "nodeType": "VariableDeclaration", "scope": 2808, "src": "697:22:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2702, "name": "address", "nodeType": "ElementaryTypeName", "src": "697:7:17", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "private"}, {"anonymous": false, "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "id": 2709, "name": "OwnershipTransferred", "nameLocation": "732:20:17", "nodeType": "EventDefinition", "parameters": {"id": 2708, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2705, "indexed": true, "mutability": "mutable", "name": "previousOwner", "nameLocation": "769:13:17", "nodeType": "VariableDeclaration", "scope": 2709, "src": "753:29:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2704, "name": "address", "nodeType": "ElementaryTypeName", "src": "753:7:17", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2707, "indexed": true, "mutability": "mutable", "name": "newOwner", "nameLocation": "800:8:17", "nodeType": "VariableDeclaration", "scope": 2709, "src": "784:24:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2706, "name": "address", "nodeType": "ElementaryTypeName", "src": "784:7:17", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "752:57:17"}, "src": "726:84:17"}, {"body": {"id": 2718, "nodeType": "Block", "src": "926:49:17", "statements": [{"expression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 2714, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "955:10:17", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 2715, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "955:12:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 2713, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2807, "src": "936:18:17", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)"}}, "id": 2716, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "936:32:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2717, "nodeType": "ExpressionStatement", "src": "936:32:17"}]}, "documentation": {"id": 2710, "nodeType": "StructuredDocumentation", "src": "816:91:17", "text": " @dev Initializes the contract setting the deployer as the initial owner."}, "id": 2719, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": {"id": 2711, "nodeType": "ParameterList", "parameters": [], "src": "923:2:17"}, "returnParameters": {"id": 2712, "nodeType": "ParameterList", "parameters": [], "src": "926:0:17"}, "scope": 2808, "src": "912:63:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2726, "nodeType": "Block", "src": "1084:41:17", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "id": 2722, "name": "_checkOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2750, "src": "1094:11:17", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view"}}, "id": 2723, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1094:13:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2724, "nodeType": "ExpressionStatement", "src": "1094:13:17"}, {"id": 2725, "nodeType": "PlaceholderStatement", "src": "1117:1:17"}]}, "documentation": {"id": 2720, "nodeType": "StructuredDocumentation", "src": "981:77:17", "text": " @dev Throws if called by any account other than the owner."}, "id": 2727, "name": "onlyOwner", "nameLocation": "1072:9:17", "nodeType": "ModifierDefinition", "parameters": {"id": 2721, "nodeType": "ParameterList", "parameters": [], "src": "1081:2:17"}, "src": "1063:62:17", "virtual": false, "visibility": "internal"}, {"body": {"id": 2735, "nodeType": "Block", "src": "1256:30:17", "statements": [{"expression": {"id": 2733, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2703, "src": "1273:6:17", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 2732, "id": 2734, "nodeType": "Return", "src": "1266:13:17"}]}, "documentation": {"id": 2728, "nodeType": "StructuredDocumentation", "src": "1131:65:17", "text": " @dev Returns the address of the current owner."}, "functionSelector": "8da5cb5b", "id": 2736, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", "nameLocation": "1210:5:17", "nodeType": "FunctionDefinition", "parameters": {"id": 2729, "nodeType": "ParameterList", "parameters": [], "src": "1215:2:17"}, "returnParameters": {"id": 2732, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2731, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2736, "src": "1247:7:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2730, "name": "address", "nodeType": "ElementaryTypeName", "src": "1247:7:17", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1246:9:17"}, "scope": 2808, "src": "1201:85:17", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"body": {"id": 2749, "nodeType": "Block", "src": "1404:85:17", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 2745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 2741, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2736, "src": "1422:5:17", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 2742, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1422:7:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 2743, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "1433:10:17", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 2744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1433:12:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1422:23:17", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", "id": 2746, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1447:34:17", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\""}, "value": "Ownable: caller is not the owner"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\""}], "id": 2740, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1414:7:17", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 2747, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1414:68:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2748, "nodeType": "ExpressionStatement", "src": "1414:68:17"}]}, "documentation": {"id": 2737, "nodeType": "StructuredDocumentation", "src": "1292:62:17", "text": " @dev Throws if the sender is not the owner."}, "id": 2750, "implemented": true, "kind": "function", "modifiers": [], "name": "_checkOwner", "nameLocation": "1368:11:17", "nodeType": "FunctionDefinition", "parameters": {"id": 2738, "nodeType": "ParameterList", "parameters": [], "src": "1379:2:17"}, "returnParameters": {"id": 2739, "nodeType": "ParameterList", "parameters": [], "src": "1404:0:17"}, "scope": 2808, "src": "1359:130:17", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 2763, "nodeType": "Block", "src": "1885:47:17", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 2759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1922:1:17", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 2758, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1914:7:17", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 2757, "name": "address", "nodeType": "ElementaryTypeName", "src": "1914:7:17", "typeDescriptions": {}}}, "id": 2760, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1914:10:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 2756, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2807, "src": "1895:18:17", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)"}}, "id": 2761, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1895:30:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2762, "nodeType": "ExpressionStatement", "src": "1895:30:17"}]}, "documentation": {"id": 2751, "nodeType": "StructuredDocumentation", "src": "1495:331:17", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."}, "functionSelector": "715018a6", "id": 2764, "implemented": true, "kind": "function", "modifiers": [{"id": 2754, "kind": "modifierInvocation", "modifierName": {"id": 2753, "name": "onlyOwner", "nameLocations": ["1875:9:17"], "nodeType": "IdentifierPath", "referencedDeclaration": 2727, "src": "1875:9:17"}, "nodeType": "ModifierInvocation", "src": "1875:9:17"}], "name": "renounceOwnership", "nameLocation": "1840:17:17", "nodeType": "FunctionDefinition", "parameters": {"id": 2752, "nodeType": "ParameterList", "parameters": [], "src": "1857:2:17"}, "returnParameters": {"id": 2755, "nodeType": "ParameterList", "parameters": [], "src": "1885:0:17"}, "scope": 2808, "src": "1831:101:17", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"body": {"id": 2786, "nodeType": "Block", "src": "2151:128:17", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 2778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2773, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2767, "src": "2169:8:17", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 2776, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2189:1:17", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 2775, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2181:7:17", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 2774, "name": "address", "nodeType": "ElementaryTypeName", "src": "2181:7:17", "typeDescriptions": {}}}, "id": 2777, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2181:10:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2169:22:17", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", "id": 2779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2193:40:17", "typeDescriptions": {"typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\""}, "value": "Ownable: new owner is the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\""}], "id": 2772, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2161:7:17", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 2780, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2161:73:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2781, "nodeType": "ExpressionStatement", "src": "2161:73:17"}, {"expression": {"arguments": [{"id": 2783, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2767, "src": "2263:8:17", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 2782, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2807, "src": "2244:18:17", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)"}}, "id": 2784, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2244:28:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2785, "nodeType": "ExpressionStatement", "src": "2244:28:17"}]}, "documentation": {"id": 2765, "nodeType": "StructuredDocumentation", "src": "1938:138:17", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."}, "functionSelector": "f2fde38b", "id": 2787, "implemented": true, "kind": "function", "modifiers": [{"id": 2770, "kind": "modifierInvocation", "modifierName": {"id": 2769, "name": "onlyOwner", "nameLocations": ["2141:9:17"], "nodeType": "IdentifierPath", "referencedDeclaration": 2727, "src": "2141:9:17"}, "nodeType": "ModifierInvocation", "src": "2141:9:17"}], "name": "transferOwnership", "nameLocation": "2090:17:17", "nodeType": "FunctionDefinition", "parameters": {"id": 2768, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2767, "mutability": "mutable", "name": "newOwner", "nameLocation": "2116:8:17", "nodeType": "VariableDeclaration", "scope": 2787, "src": "2108:16:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2766, "name": "address", "nodeType": "ElementaryTypeName", "src": "2108:7:17", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2107:18:17"}, "returnParameters": {"id": 2771, "nodeType": "ParameterList", "parameters": [], "src": "2151:0:17"}, "scope": 2808, "src": "2081:198:17", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"body": {"id": 2806, "nodeType": "Block", "src": "2496:124:17", "statements": [{"assignments": [2794], "declarations": [{"constant": false, "id": 2794, "mutability": "mutable", "name": "oldOwner", "nameLocation": "2514:8:17", "nodeType": "VariableDeclaration", "scope": 2806, "src": "2506:16:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2793, "name": "address", "nodeType": "ElementaryTypeName", "src": "2506:7:17", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 2796, "initialValue": {"id": 2795, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2703, "src": "2525:6:17", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "2506:25:17"}, {"expression": {"id": 2799, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 2797, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2703, "src": "2541:6:17", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 2798, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2790, "src": "2550:8:17", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2541:17:17", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 2800, "nodeType": "ExpressionStatement", "src": "2541:17:17"}, {"eventCall": {"arguments": [{"id": 2802, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2794, "src": "2594:8:17", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 2803, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2790, "src": "2604:8:17", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 2801, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2709, "src": "2573:20:17", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)"}}, "id": 2804, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2573:40:17", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2805, "nodeType": "EmitStatement", "src": "2568:45:17"}]}, "documentation": {"id": 2788, "nodeType": "StructuredDocumentation", "src": "2285:143:17", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."}, "id": 2807, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", "nameLocation": "2442:18:17", "nodeType": "FunctionDefinition", "parameters": {"id": 2791, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2790, "mutability": "mutable", "name": "newOwner", "nameLocation": "2469:8:17", "nodeType": "VariableDeclaration", "scope": 2807, "src": "2461:16:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2789, "name": "address", "nodeType": "ElementaryTypeName", "src": "2461:7:17", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2460:18:17"}, "returnParameters": {"id": 2792, "nodeType": "ParameterList", "parameters": [], "src": "2496:0:17"}, "scope": 2808, "src": "2433:187:17", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}], "scope": 2809, "src": "654:1968:17", "usedErrors": []}], "src": "102:2521:17"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/proxy/Clones.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/proxy/Clones.sol", "exportedSymbols": {"Clones": [2888]}, "id": 2889, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 2810, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "100:23:18"}, {"abstract": false, "baseContracts": [], "canonicalName": "Clones", "contractDependencies": [], "contractKind": "library", "documentation": {"id": 2811, "nodeType": "StructuredDocumentation", "src": "125:629:18", "text": " @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for\n deploying minimal proxy contracts, also known as \"clones\".\n > To simply and cheaply clone contract functionality in an immutable way, this standard specifies\n > a minimal bytecode implementation that delegates all calls to a known, fixed address.\n The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`\n (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the\n deterministic method.\n _Available since v3.4._"}, "fullyImplemented": true, "id": 2888, "linearizedBaseContracts": [2888], "name": "Clones", "nameLocation": "763:6:18", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 2830, "nodeType": "Block", "src": "1048:483:18", "statements": [{"AST": {"nodeType": "YulBlock", "src": "1110:348:18", "statements": [{"nodeType": "YulVariableDeclaration", "src": "1124:22:18", "value": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "1141:4:18", "type": "", "value": "0x40"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "1135:5:18"}, "nodeType": "YulFunctionCall", "src": "1135:11:18"}, "variables": [{"name": "ptr", "nodeType": "YulTypedName", "src": "1128:3:18", "type": ""}]}, {"expression": {"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "1166:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1171:66:18", "type": "", "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "1159:6:18"}, "nodeType": "YulFunctionCall", "src": "1159:79:18"}, "nodeType": "YulExpressionStatement", "src": "1159:79:18"}, {"expression": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "1262:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1267:4:18", "type": "", "value": "0x14"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "1258:3:18"}, "nodeType": "YulFunctionCall", "src": "1258:14:18"}, {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "1278:4:18", "type": "", "value": "0x60"}, {"name": "implementation", "nodeType": "YulIdentifier", "src": "1284:14:18"}], "functionName": {"name": "shl", "nodeType": "YulIdentifier", "src": "1274:3:18"}, "nodeType": "YulFunctionCall", "src": "1274:25:18"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "1251:6:18"}, "nodeType": "YulFunctionCall", "src": "1251:49:18"}, "nodeType": "YulExpressionStatement", "src": "1251:49:18"}, {"expression": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "1324:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1329:4:18", "type": "", "value": "0x28"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "1320:3:18"}, "nodeType": "YulFunctionCall", "src": "1320:14:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1336:66:18", "type": "", "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "1313:6:18"}, "nodeType": "YulFunctionCall", "src": "1313:90:18"}, "nodeType": "YulExpressionStatement", "src": "1313:90:18"}, {"nodeType": "YulAssignment", "src": "1416:32:18", "value": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "1435:1:18", "type": "", "value": "0"}, {"name": "ptr", "nodeType": "YulIdentifier", "src": "1438:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1443:4:18", "type": "", "value": "0x37"}], "functionName": {"name": "create", "nodeType": "YulIdentifier", "src": "1428:6:18"}, "nodeType": "YulFunctionCall", "src": "1428:20:18"}, "variableNames": [{"name": "instance", "nodeType": "YulIdentifier", "src": "1416:8:18"}]}]}, "documentation": "@solidity memory-safe-assembly", "evmVersion": "london", "externalReferences": [{"declaration": 2814, "isOffset": false, "isSlot": false, "src": "1284:14:18", "valueSize": 1}, {"declaration": 2817, "isOffset": false, "isSlot": false, "src": "1416:8:18", "valueSize": 1}], "id": 2819, "nodeType": "InlineAssembly", "src": "1101:357:18"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 2826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2821, "name": "instance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2817, "src": "1475:8:18", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 2824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1495:1:18", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 2823, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1487:7:18", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 2822, "name": "address", "nodeType": "ElementaryTypeName", "src": "1487:7:18", "typeDescriptions": {}}}, "id": 2825, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1487:10:18", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1475:22:18", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "455243313136373a20637265617465206661696c6564", "id": 2827, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1499:24:18", "typeDescriptions": {"typeIdentifier": "t_stringliteral_68ca40b61460257f14e69f48b1a4dbc812e9afc6932f127ef8084544457b3335", "typeString": "literal_string \"ERC1167: create failed\""}, "value": "ERC1167: create failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_68ca40b61460257f14e69f48b1a4dbc812e9afc6932f127ef8084544457b3335", "typeString": "literal_string \"ERC1167: create failed\""}], "id": 2820, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1467:7:18", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 2828, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1467:57:18", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2829, "nodeType": "ExpressionStatement", "src": "1467:57:18"}]}, "documentation": {"id": 2812, "nodeType": "StructuredDocumentation", "src": "776:192:18", "text": " @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.\n This function uses the create opcode, which should never revert."}, "id": 2831, "implemented": true, "kind": "function", "modifiers": [], "name": "clone", "nameLocation": "982:5:18", "nodeType": "FunctionDefinition", "parameters": {"id": 2815, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2814, "mutability": "mutable", "name": "implementation", "nameLocation": "996:14:18", "nodeType": "VariableDeclaration", "scope": 2831, "src": "988:22:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2813, "name": "address", "nodeType": "ElementaryTypeName", "src": "988:7:18", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "987:24:18"}, "returnParameters": {"id": 2818, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2817, "mutability": "mutable", "name": "instance", "nameLocation": "1038:8:18", "nodeType": "VariableDeclaration", "scope": 2831, "src": "1030:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2816, "name": "address", "nodeType": "ElementaryTypeName", "src": "1030:7:18", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1029:18:18"}, "scope": 2888, "src": "973:558:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2852, "nodeType": "Block", "src": "2008:491:18", "statements": [{"AST": {"nodeType": "YulBlock", "src": "2070:355:18", "statements": [{"nodeType": "YulVariableDeclaration", "src": "2084:22:18", "value": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "2101:4:18", "type": "", "value": "0x40"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "2095:5:18"}, "nodeType": "YulFunctionCall", "src": "2095:11:18"}, "variables": [{"name": "ptr", "nodeType": "YulTypedName", "src": "2088:3:18", "type": ""}]}, {"expression": {"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "2126:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2131:66:18", "type": "", "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "2119:6:18"}, "nodeType": "YulFunctionCall", "src": "2119:79:18"}, "nodeType": "YulExpressionStatement", "src": "2119:79:18"}, {"expression": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "2222:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2227:4:18", "type": "", "value": "0x14"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "2218:3:18"}, "nodeType": "YulFunctionCall", "src": "2218:14:18"}, {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "2238:4:18", "type": "", "value": "0x60"}, {"name": "implementation", "nodeType": "YulIdentifier", "src": "2244:14:18"}], "functionName": {"name": "shl", "nodeType": "YulIdentifier", "src": "2234:3:18"}, "nodeType": "YulFunctionCall", "src": "2234:25:18"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "2211:6:18"}, "nodeType": "YulFunctionCall", "src": "2211:49:18"}, "nodeType": "YulExpressionStatement", "src": "2211:49:18"}, {"expression": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "2284:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2289:4:18", "type": "", "value": "0x28"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "2280:3:18"}, "nodeType": "YulFunctionCall", "src": "2280:14:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2296:66:18", "type": "", "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "2273:6:18"}, "nodeType": "YulFunctionCall", "src": "2273:90:18"}, "nodeType": "YulExpressionStatement", "src": "2273:90:18"}, {"nodeType": "YulAssignment", "src": "2376:39:18", "value": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "2396:1:18", "type": "", "value": "0"}, {"name": "ptr", "nodeType": "YulIdentifier", "src": "2399:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2404:4:18", "type": "", "value": "0x37"}, {"name": "salt", "nodeType": "YulIdentifier", "src": "2410:4:18"}], "functionName": {"name": "create2", "nodeType": "YulIdentifier", "src": "2388:7:18"}, "nodeType": "YulFunctionCall", "src": "2388:27:18"}, "variableNames": [{"name": "instance", "nodeType": "YulIdentifier", "src": "2376:8:18"}]}]}, "documentation": "@solidity memory-safe-assembly", "evmVersion": "london", "externalReferences": [{"declaration": 2834, "isOffset": false, "isSlot": false, "src": "2244:14:18", "valueSize": 1}, {"declaration": 2839, "isOffset": false, "isSlot": false, "src": "2376:8:18", "valueSize": 1}, {"declaration": 2836, "isOffset": false, "isSlot": false, "src": "2410:4:18", "valueSize": 1}], "id": 2841, "nodeType": "InlineAssembly", "src": "2061:364:18"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 2848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 2843, "name": "instance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2839, "src": "2442:8:18", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 2846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2462:1:18", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 2845, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2454:7:18", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 2844, "name": "address", "nodeType": "ElementaryTypeName", "src": "2454:7:18", "typeDescriptions": {}}}, "id": 2847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2454:10:18", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2442:22:18", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "455243313136373a2063726561746532206661696c6564", "id": 2849, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2466:25:18", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4ec050e530ce66e7658278ab7a4e4a2f19225159c48fc52eb249bd268e755d73", "typeString": "literal_string \"ERC1167: create2 failed\""}, "value": "ERC1167: create2 failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_4ec050e530ce66e7658278ab7a4e4a2f19225159c48fc52eb249bd268e755d73", "typeString": "literal_string \"ERC1167: create2 failed\""}], "id": 2842, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2434:7:18", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 2850, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2434:58:18", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 2851, "nodeType": "ExpressionStatement", "src": "2434:58:18"}]}, "documentation": {"id": 2832, "nodeType": "StructuredDocumentation", "src": "1537:364:18", "text": " @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.\n This function uses the create2 opcode and a `salt` to deterministically deploy\n the clone. Using the same `implementation` and `salt` multiple time will revert, since\n the clones cannot be deployed twice at the same address."}, "id": 2853, "implemented": true, "kind": "function", "modifiers": [], "name": "cloneDeterministic", "nameLocation": "1915:18:18", "nodeType": "FunctionDefinition", "parameters": {"id": 2837, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2834, "mutability": "mutable", "name": "implementation", "nameLocation": "1942:14:18", "nodeType": "VariableDeclaration", "scope": 2853, "src": "1934:22:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2833, "name": "address", "nodeType": "ElementaryTypeName", "src": "1934:7:18", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2836, "mutability": "mutable", "name": "salt", "nameLocation": "1966:4:18", "nodeType": "VariableDeclaration", "scope": 2853, "src": "1958:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 2835, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1958:7:18", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "1933:38:18"}, "returnParameters": {"id": 2840, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2839, "mutability": "mutable", "name": "instance", "nameLocation": "1998:8:18", "nodeType": "VariableDeclaration", "scope": 2853, "src": "1990:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2838, "name": "address", "nodeType": "ElementaryTypeName", "src": "1990:7:18", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1989:18:18"}, "scope": 2888, "src": "1906:593:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 2866, "nodeType": "Block", "src": "2774:582:18", "statements": [{"AST": {"nodeType": "YulBlock", "src": "2836:514:18", "statements": [{"nodeType": "YulVariableDeclaration", "src": "2850:22:18", "value": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "2867:4:18", "type": "", "value": "0x40"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "2861:5:18"}, "nodeType": "YulFunctionCall", "src": "2861:11:18"}, "variables": [{"name": "ptr", "nodeType": "YulTypedName", "src": "2854:3:18", "type": ""}]}, {"expression": {"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "2892:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2897:66:18", "type": "", "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "2885:6:18"}, "nodeType": "YulFunctionCall", "src": "2885:79:18"}, "nodeType": "YulExpressionStatement", "src": "2885:79:18"}, {"expression": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "2988:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2993:4:18", "type": "", "value": "0x14"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "2984:3:18"}, "nodeType": "YulFunctionCall", "src": "2984:14:18"}, {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "3004:4:18", "type": "", "value": "0x60"}, {"name": "implementation", "nodeType": "YulIdentifier", "src": "3010:14:18"}], "functionName": {"name": "shl", "nodeType": "YulIdentifier", "src": "3000:3:18"}, "nodeType": "YulFunctionCall", "src": "3000:25:18"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "2977:6:18"}, "nodeType": "YulFunctionCall", "src": "2977:49:18"}, "nodeType": "YulExpressionStatement", "src": "2977:49:18"}, {"expression": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "3050:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3055:4:18", "type": "", "value": "0x28"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3046:3:18"}, "nodeType": "YulFunctionCall", "src": "3046:14:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3062:66:18", "type": "", "value": "0x5af43d82803e903d91602b57fd5bf3ff00000000000000000000000000000000"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "3039:6:18"}, "nodeType": "YulFunctionCall", "src": "3039:90:18"}, "nodeType": "YulExpressionStatement", "src": "3039:90:18"}, {"expression": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "3153:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3158:4:18", "type": "", "value": "0x38"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3149:3:18"}, "nodeType": "YulFunctionCall", "src": "3149:14:18"}, {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "3169:4:18", "type": "", "value": "0x60"}, {"name": "deployer", "nodeType": "YulIdentifier", "src": "3175:8:18"}], "functionName": {"name": "shl", "nodeType": "YulIdentifier", "src": "3165:3:18"}, "nodeType": "YulFunctionCall", "src": "3165:19:18"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "3142:6:18"}, "nodeType": "YulFunctionCall", "src": "3142:43:18"}, "nodeType": "YulExpressionStatement", "src": "3142:43:18"}, {"expression": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "3209:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3214:4:18", "type": "", "value": "0x4c"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3205:3:18"}, "nodeType": "YulFunctionCall", "src": "3205:14:18"}, {"name": "salt", "nodeType": "YulIdentifier", "src": "3221:4:18"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "3198:6:18"}, "nodeType": "YulFunctionCall", "src": "3198:28:18"}, "nodeType": "YulExpressionStatement", "src": "3198:28:18"}, {"expression": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "3250:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3255:4:18", "type": "", "value": "0x6c"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3246:3:18"}, "nodeType": "YulFunctionCall", "src": "3246:14:18"}, {"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "3272:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3277:4:18", "type": "", "value": "0x37"}], "functionName": {"name": "keccak256", "nodeType": "YulIdentifier", "src": "3262:9:18"}, "nodeType": "YulFunctionCall", "src": "3262:20:18"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "3239:6:18"}, "nodeType": "YulFunctionCall", "src": "3239:44:18"}, "nodeType": "YulExpressionStatement", "src": "3239:44:18"}, {"nodeType": "YulAssignment", "src": "3296:44:18", "value": {"arguments": [{"arguments": [{"name": "ptr", "nodeType": "YulIdentifier", "src": "3323:3:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3328:4:18", "type": "", "value": "0x37"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3319:3:18"}, "nodeType": "YulFunctionCall", "src": "3319:14:18"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3335:4:18", "type": "", "value": "0x55"}], "functionName": {"name": "keccak256", "nodeType": "YulIdentifier", "src": "3309:9:18"}, "nodeType": "YulFunctionCall", "src": "3309:31:18"}, "variableNames": [{"name": "predicted", "nodeType": "YulIdentifier", "src": "3296:9:18"}]}]}, "documentation": "@solidity memory-safe-assembly", "evmVersion": "london", "externalReferences": [{"declaration": 2860, "isOffset": false, "isSlot": false, "src": "3175:8:18", "valueSize": 1}, {"declaration": 2856, "isOffset": false, "isSlot": false, "src": "3010:14:18", "valueSize": 1}, {"declaration": 2863, "isOffset": false, "isSlot": false, "src": "3296:9:18", "valueSize": 1}, {"declaration": 2858, "isOffset": false, "isSlot": false, "src": "3221:4:18", "valueSize": 1}], "id": 2865, "nodeType": "InlineAssembly", "src": "2827:523:18"}]}, "documentation": {"id": 2854, "nodeType": "StructuredDocumentation", "src": "2505:99:18", "text": " @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}."}, "id": 2867, "implemented": true, "kind": "function", "modifiers": [], "name": "predictDeterministicAddress", "nameLocation": "2618:27:18", "nodeType": "FunctionDefinition", "parameters": {"id": 2861, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2856, "mutability": "mutable", "name": "implementation", "nameLocation": "2663:14:18", "nodeType": "VariableDeclaration", "scope": 2867, "src": "2655:22:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2855, "name": "address", "nodeType": "ElementaryTypeName", "src": "2655:7:18", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2858, "mutability": "mutable", "name": "salt", "nameLocation": "2695:4:18", "nodeType": "VariableDeclaration", "scope": 2867, "src": "2687:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 2857, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2687:7:18", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 2860, "mutability": "mutable", "name": "deployer", "nameLocation": "2717:8:18", "nodeType": "VariableDeclaration", "scope": 2867, "src": "2709:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2859, "name": "address", "nodeType": "ElementaryTypeName", "src": "2709:7:18", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2645:86:18"}, "returnParameters": {"id": 2864, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2863, "mutability": "mutable", "name": "predicted", "nameLocation": "2763:9:18", "nodeType": "VariableDeclaration", "scope": 2867, "src": "2755:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2862, "name": "address", "nodeType": "ElementaryTypeName", "src": "2755:7:18", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2754:19:18"}, "scope": 2888, "src": "2609:747:18", "stateMutability": "pure", "virtual": false, "visibility": "internal"}, {"body": {"id": 2886, "nodeType": "Block", "src": "3611:88:18", "statements": [{"expression": {"arguments": [{"id": 2878, "name": "implementation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2870, "src": "3656:14:18", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 2879, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2872, "src": "3672:4:18", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"arguments": [{"id": 2882, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "3686:4:18", "typeDescriptions": {"typeIdentifier": "t_contract$_Clones_$2888", "typeString": "library Clones"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_Clones_$2888", "typeString": "library Clones"}], "id": 2881, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3678:7:18", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 2880, "name": "address", "nodeType": "ElementaryTypeName", "src": "3678:7:18", "typeDescriptions": {}}}, "id": 2883, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3678:13:18", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 2877, "name": "predictDeterministicAddress", "nodeType": "Identifier", "overloadedDeclarations": [2867, 2887], "referencedDeclaration": 2867, "src": "3628:27:18", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$returns$_t_address_$", "typeString": "function (address,bytes32,address) pure returns (address)"}}, "id": 2884, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3628:64:18", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 2876, "id": 2885, "nodeType": "Return", "src": "3621:71:18"}]}, "documentation": {"id": 2868, "nodeType": "StructuredDocumentation", "src": "3362:99:18", "text": " @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}."}, "id": 2887, "implemented": true, "kind": "function", "modifiers": [], "name": "predictDeterministicAddress", "nameLocation": "3475:27:18", "nodeType": "FunctionDefinition", "parameters": {"id": 2873, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2870, "mutability": "mutable", "name": "implementation", "nameLocation": "3511:14:18", "nodeType": "VariableDeclaration", "scope": 2887, "src": "3503:22:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2869, "name": "address", "nodeType": "ElementaryTypeName", "src": "3503:7:18", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2872, "mutability": "mutable", "name": "salt", "nameLocation": "3535:4:18", "nodeType": "VariableDeclaration", "scope": 2887, "src": "3527:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 2871, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3527:7:18", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "3502:38:18"}, "returnParameters": {"id": 2876, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2875, "mutability": "mutable", "name": "predicted", "nameLocation": "3596:9:18", "nodeType": "VariableDeclaration", "scope": 2887, "src": "3588:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2874, "name": "address", "nodeType": "ElementaryTypeName", "src": "3588:7:18", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "3587:19:18"}, "scope": 2888, "src": "3466:233:18", "stateMutability": "view", "virtual": false, "visibility": "internal"}], "scope": 2889, "src": "755:2946:18", "usedErrors": []}], "src": "100:3602:18"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "exportedSymbols": {"Context": [5047], "ERC20": [3474], "IERC20": [3552], "IERC20Metadata": [3577]}, "id": 3475, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 2890, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "105:23:19"}, {"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", "id": 2891, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 3475, "sourceUnit": 3553, "src": "130:22:19", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "file": "./extensions/IERC20Metadata.sol", "id": 2892, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 3475, "sourceUnit": 3578, "src": "153:41:19", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/utils/Context.sol", "file": "../../utils/Context.sol", "id": 2893, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 3475, "sourceUnit": 5048, "src": "195:33:19", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 2895, "name": "Context", "nameLocations": ["1421:7:19"], "nodeType": "IdentifierPath", "referencedDeclaration": 5047, "src": "1421:7:19"}, "id": 2896, "nodeType": "InheritanceSpecifier", "src": "1421:7:19"}, {"baseName": {"id": 2897, "name": "IERC20", "nameLocations": ["1430:6:19"], "nodeType": "IdentifierPath", "referencedDeclaration": 3552, "src": "1430:6:19"}, "id": 2898, "nodeType": "InheritanceSpecifier", "src": "1430:6:19"}, {"baseName": {"id": 2899, "name": "IERC20Metadata", "nameLocations": ["1438:14:19"], "nodeType": "IdentifierPath", "referencedDeclaration": 3577, "src": "1438:14:19"}, "id": 2900, "nodeType": "InheritanceSpecifier", "src": "1438:14:19"}], "canonicalName": "ERC20", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 2894, "nodeType": "StructuredDocumentation", "src": "230:1172:19", "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."}, "fullyImplemented": true, "id": 3474, "linearizedBaseContracts": [3474, 3577, 3552, 5047], "name": "ERC20", "nameLocation": "1412:5:19", "nodeType": "ContractDefinition", "nodes": [{"constant": false, "id": 2904, "mutability": "mutable", "name": "_balances", "nameLocation": "1495:9:19", "nodeType": "VariableDeclaration", "scope": 3474, "src": "1459:45:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}, "typeName": {"id": 2903, "keyType": {"id": 2901, "name": "address", "nodeType": "ElementaryTypeName", "src": "1467:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1459:27:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}, "valueType": {"id": 2902, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1478:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}}, "visibility": "private"}, {"constant": false, "id": 2910, "mutability": "mutable", "name": "_allowances", "nameLocation": "1567:11:19", "nodeType": "VariableDeclaration", "scope": 3474, "src": "1511:67:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))"}, "typeName": {"id": 2909, "keyType": {"id": 2905, "name": "address", "nodeType": "ElementaryTypeName", "src": "1519:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1511:47:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))"}, "valueType": {"id": 2908, "keyType": {"id": 2906, "name": "address", "nodeType": "ElementaryTypeName", "src": "1538:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1530:27:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}, "valueType": {"id": 2907, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1549:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}}}, "visibility": "private"}, {"constant": false, "id": 2912, "mutability": "mutable", "name": "_totalSupply", "nameLocation": "1601:12:19", "nodeType": "VariableDeclaration", "scope": 3474, "src": "1585:28:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2911, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1585:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "private"}, {"constant": false, "id": 2914, "mutability": "mutable", "name": "_name", "nameLocation": "1635:5:19", "nodeType": "VariableDeclaration", "scope": 3474, "src": "1620:20:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string"}, "typeName": {"id": 2913, "name": "string", "nodeType": "ElementaryTypeName", "src": "1620:6:19", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "private"}, {"constant": false, "id": 2916, "mutability": "mutable", "name": "_symbol", "nameLocation": "1661:7:19", "nodeType": "VariableDeclaration", "scope": 3474, "src": "1646:22:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string"}, "typeName": {"id": 2915, "name": "string", "nodeType": "ElementaryTypeName", "src": "1646:6:19", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "private"}, {"body": {"id": 2932, "nodeType": "Block", "src": "2034:57:19", "statements": [{"expression": {"id": 2926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 2924, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2914, "src": "2044:5:19", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 2925, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2919, "src": "2052:5:19", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "src": "2044:13:19", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "id": 2927, "nodeType": "ExpressionStatement", "src": "2044:13:19"}, {"expression": {"id": 2930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 2928, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2916, "src": "2067:7:19", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 2929, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2921, "src": "2077:7:19", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "src": "2067:17:19", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "id": 2931, "nodeType": "ExpressionStatement", "src": "2067:17:19"}]}, "documentation": {"id": 2917, "nodeType": "StructuredDocumentation", "src": "1675:298:19", "text": " @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction."}, "id": 2933, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": {"id": 2922, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2919, "mutability": "mutable", "name": "name_", "nameLocation": "2004:5:19", "nodeType": "VariableDeclaration", "scope": 2933, "src": "1990:19:19", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2918, "name": "string", "nodeType": "ElementaryTypeName", "src": "1990:6:19", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 2921, "mutability": "mutable", "name": "symbol_", "nameLocation": "2025:7:19", "nodeType": "VariableDeclaration", "scope": 2933, "src": "2011:21:19", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2920, "name": "string", "nodeType": "ElementaryTypeName", "src": "2011:6:19", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1989:44:19"}, "returnParameters": {"id": 2923, "nodeType": "ParameterList", "parameters": [], "src": "2034:0:19"}, "scope": 3474, "src": "1978:113:19", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"baseFunctions": [3564], "body": {"id": 2942, "nodeType": "Block", "src": "2225:29:19", "statements": [{"expression": {"id": 2940, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2914, "src": "2242:5:19", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "functionReturnParameters": 2939, "id": 2941, "nodeType": "Return", "src": "2235:12:19"}]}, "documentation": {"id": 2934, "nodeType": "StructuredDocumentation", "src": "2097:54:19", "text": " @dev Returns the name of the token."}, "functionSelector": "06fdde03", "id": 2943, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nameLocation": "2165:4:19", "nodeType": "FunctionDefinition", "overrides": {"id": 2936, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2192:8:19"}, "parameters": {"id": 2935, "nodeType": "ParameterList", "parameters": [], "src": "2169:2:19"}, "returnParameters": {"id": 2939, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2938, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2943, "src": "2210:13:19", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2937, "name": "string", "nodeType": "ElementaryTypeName", "src": "2210:6:19", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2209:15:19"}, "scope": 3474, "src": "2156:98:19", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [3570], "body": {"id": 2952, "nodeType": "Block", "src": "2438:31:19", "statements": [{"expression": {"id": 2950, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2916, "src": "2455:7:19", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "functionReturnParameters": 2949, "id": 2951, "nodeType": "Return", "src": "2448:14:19"}]}, "documentation": {"id": 2944, "nodeType": "StructuredDocumentation", "src": "2260:102:19", "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."}, "functionSelector": "95d89b41", "id": 2953, "implemented": true, "kind": "function", "modifiers": [], "name": "symbol", "nameLocation": "2376:6:19", "nodeType": "FunctionDefinition", "overrides": {"id": 2946, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2405:8:19"}, "parameters": {"id": 2945, "nodeType": "ParameterList", "parameters": [], "src": "2382:2:19"}, "returnParameters": {"id": 2949, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2948, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2953, "src": "2423:13:19", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 2947, "name": "string", "nodeType": "ElementaryTypeName", "src": "2423:6:19", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2422:15:19"}, "scope": 3474, "src": "2367:102:19", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [3576], "body": {"id": 2962, "nodeType": "Block", "src": "3158:26:19", "statements": [{"expression": {"hexValue": "3138", "id": 2960, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3175:2:19", "typeDescriptions": {"typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18"}, "value": "18"}, "functionReturnParameters": 2959, "id": 2961, "nodeType": "Return", "src": "3168:9:19"}]}, "documentation": {"id": 2954, "nodeType": "StructuredDocumentation", "src": "2475:613:19", "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."}, "functionSelector": "313ce567", "id": 2963, "implemented": true, "kind": "function", "modifiers": [], "name": "decimals", "nameLocation": "3102:8:19", "nodeType": "FunctionDefinition", "overrides": {"id": 2956, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3133:8:19"}, "parameters": {"id": 2955, "nodeType": "ParameterList", "parameters": [], "src": "3110:2:19"}, "returnParameters": {"id": 2959, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2958, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2963, "src": "3151:5:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 2957, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3151:5:19", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "visibility": "internal"}], "src": "3150:7:19"}, "scope": 3474, "src": "3093:91:19", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [3501], "body": {"id": 2972, "nodeType": "Block", "src": "3314:36:19", "statements": [{"expression": {"id": 2970, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2912, "src": "3331:12:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 2969, "id": 2971, "nodeType": "Return", "src": "3324:19:19"}]}, "documentation": {"id": 2964, "nodeType": "StructuredDocumentation", "src": "3190:49:19", "text": " @dev See {IERC20-totalSupply}."}, "functionSelector": "18160ddd", "id": 2973, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nameLocation": "3253:11:19", "nodeType": "FunctionDefinition", "overrides": {"id": 2966, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3287:8:19"}, "parameters": {"id": 2965, "nodeType": "ParameterList", "parameters": [], "src": "3264:2:19"}, "returnParameters": {"id": 2969, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2968, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2973, "src": "3305:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2967, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3305:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3304:9:19"}, "scope": 3474, "src": "3244:106:19", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [3509], "body": {"id": 2986, "nodeType": "Block", "src": "3491:42:19", "statements": [{"expression": {"baseExpression": {"id": 2982, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2904, "src": "3508:9:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 2984, "indexExpression": {"id": 2983, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2976, "src": "3518:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3508:18:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 2981, "id": 2985, "nodeType": "Return", "src": "3501:25:19"}]}, "documentation": {"id": 2974, "nodeType": "StructuredDocumentation", "src": "3356:47:19", "text": " @dev See {IERC20-balanceOf}."}, "functionSelector": "70a08231", "id": 2987, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "3417:9:19", "nodeType": "FunctionDefinition", "overrides": {"id": 2978, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3464:8:19"}, "parameters": {"id": 2977, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2976, "mutability": "mutable", "name": "account", "nameLocation": "3435:7:19", "nodeType": "VariableDeclaration", "scope": 2987, "src": "3427:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2975, "name": "address", "nodeType": "ElementaryTypeName", "src": "3427:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "3426:17:19"}, "returnParameters": {"id": 2981, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2980, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2987, "src": "3482:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2979, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3482:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3481:9:19"}, "scope": 3474, "src": "3408:125:19", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [3519], "body": {"id": 3011, "nodeType": "Block", "src": "3814:104:19", "statements": [{"assignments": [2999], "declarations": [{"constant": false, "id": 2999, "mutability": "mutable", "name": "owner", "nameLocation": "3832:5:19", "nodeType": "VariableDeclaration", "scope": 3011, "src": "3824:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2998, "name": "address", "nodeType": "ElementaryTypeName", "src": "3824:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 3002, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 3000, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "3840:10:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3001, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3840:12:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "3824:28:19"}, {"expression": {"arguments": [{"id": 3004, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2999, "src": "3872:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3005, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2990, "src": "3879:2:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3006, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2992, "src": "3883:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3003, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3235, "src": "3862:9:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3007, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3862:28:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3008, "nodeType": "ExpressionStatement", "src": "3862:28:19"}, {"expression": {"hexValue": "74727565", "id": 3009, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3907:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "functionReturnParameters": 2997, "id": 3010, "nodeType": "Return", "src": "3900:11:19"}]}, "documentation": {"id": 2988, "nodeType": "StructuredDocumentation", "src": "3539:185:19", "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."}, "functionSelector": "a9059cbb", "id": 3012, "implemented": true, "kind": "function", "modifiers": [], "name": "transfer", "nameLocation": "3738:8:19", "nodeType": "FunctionDefinition", "overrides": {"id": 2994, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3790:8:19"}, "parameters": {"id": 2993, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2990, "mutability": "mutable", "name": "to", "nameLocation": "3755:2:19", "nodeType": "VariableDeclaration", "scope": 3012, "src": "3747:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 2989, "name": "address", "nodeType": "ElementaryTypeName", "src": "3747:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 2992, "mutability": "mutable", "name": "amount", "nameLocation": "3767:6:19", "nodeType": "VariableDeclaration", "scope": 3012, "src": "3759:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 2991, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3759:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3746:28:19"}, "returnParameters": {"id": 2997, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 2996, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3012, "src": "3808:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 2995, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3808:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "3807:6:19"}, "scope": 3474, "src": "3729:189:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [3529], "body": {"id": 3029, "nodeType": "Block", "src": "4074:51:19", "statements": [{"expression": {"baseExpression": {"baseExpression": {"id": 3023, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2910, "src": "4091:11:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))"}}, "id": 3025, "indexExpression": {"id": 3024, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3015, "src": "4103:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4091:18:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 3027, "indexExpression": {"id": 3026, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3017, "src": "4110:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4091:27:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 3022, "id": 3028, "nodeType": "Return", "src": "4084:34:19"}]}, "documentation": {"id": 3013, "nodeType": "StructuredDocumentation", "src": "3924:47:19", "text": " @dev See {IERC20-allowance}."}, "functionSelector": "dd62ed3e", "id": 3030, "implemented": true, "kind": "function", "modifiers": [], "name": "allowance", "nameLocation": "3985:9:19", "nodeType": "FunctionDefinition", "overrides": {"id": 3019, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4047:8:19"}, "parameters": {"id": 3018, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3015, "mutability": "mutable", "name": "owner", "nameLocation": "4003:5:19", "nodeType": "VariableDeclaration", "scope": 3030, "src": "3995:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3014, "name": "address", "nodeType": "ElementaryTypeName", "src": "3995:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3017, "mutability": "mutable", "name": "spender", "nameLocation": "4018:7:19", "nodeType": "VariableDeclaration", "scope": 3030, "src": "4010:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3016, "name": "address", "nodeType": "ElementaryTypeName", "src": "4010:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "3994:32:19"}, "returnParameters": {"id": 3022, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3021, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3030, "src": "4065:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3020, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4065:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4064:9:19"}, "scope": 3474, "src": "3976:149:19", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [3539], "body": {"id": 3054, "nodeType": "Block", "src": "4522:108:19", "statements": [{"assignments": [3042], "declarations": [{"constant": false, "id": 3042, "mutability": "mutable", "name": "owner", "nameLocation": "4540:5:19", "nodeType": "VariableDeclaration", "scope": 3054, "src": "4532:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3041, "name": "address", "nodeType": "ElementaryTypeName", "src": "4532:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 3045, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 3043, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "4548:10:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3044, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4548:12:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "4532:28:19"}, {"expression": {"arguments": [{"id": 3047, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3042, "src": "4579:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3048, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3033, "src": "4586:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3049, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3035, "src": "4595:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3046, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3408, "src": "4570:8:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3050, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4570:32:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3051, "nodeType": "ExpressionStatement", "src": "4570:32:19"}, {"expression": {"hexValue": "74727565", "id": 3052, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4619:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "functionReturnParameters": 3040, "id": 3053, "nodeType": "Return", "src": "4612:11:19"}]}, "documentation": {"id": 3031, "nodeType": "StructuredDocumentation", "src": "4131:297:19", "text": " @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."}, "functionSelector": "095ea7b3", "id": 3055, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "4442:7:19", "nodeType": "FunctionDefinition", "overrides": {"id": 3037, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4498:8:19"}, "parameters": {"id": 3036, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3033, "mutability": "mutable", "name": "spender", "nameLocation": "4458:7:19", "nodeType": "VariableDeclaration", "scope": 3055, "src": "4450:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3032, "name": "address", "nodeType": "ElementaryTypeName", "src": "4450:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3035, "mutability": "mutable", "name": "amount", "nameLocation": "4475:6:19", "nodeType": "VariableDeclaration", "scope": 3055, "src": "4467:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3034, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4467:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4449:33:19"}, "returnParameters": {"id": 3040, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3039, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3055, "src": "4516:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3038, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4516:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4515:6:19"}, "scope": 3474, "src": "4433:197:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [3551], "body": {"id": 3087, "nodeType": "Block", "src": "5325:153:19", "statements": [{"assignments": [3069], "declarations": [{"constant": false, "id": 3069, "mutability": "mutable", "name": "spender", "nameLocation": "5343:7:19", "nodeType": "VariableDeclaration", "scope": 3087, "src": "5335:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3068, "name": "address", "nodeType": "ElementaryTypeName", "src": "5335:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 3072, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 3070, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "5353:10:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3071, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5353:12:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "5335:30:19"}, {"expression": {"arguments": [{"id": 3074, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3058, "src": "5391:4:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3075, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3069, "src": "5397:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3076, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3062, "src": "5406:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3073, "name": "_spendAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3451, "src": "5375:15:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3077, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5375:38:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3078, "nodeType": "ExpressionStatement", "src": "5375:38:19"}, {"expression": {"arguments": [{"id": 3080, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3058, "src": "5433:4:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3081, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3060, "src": "5439:2:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3082, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3062, "src": "5443:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3079, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3235, "src": "5423:9:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3083, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5423:27:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3084, "nodeType": "ExpressionStatement", "src": "5423:27:19"}, {"expression": {"hexValue": "74727565", "id": 3085, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5467:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "functionReturnParameters": 3067, "id": 3086, "nodeType": "Return", "src": "5460:11:19"}]}, "documentation": {"id": 3056, "nodeType": "StructuredDocumentation", "src": "4636:551:19", "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."}, "functionSelector": "23b872dd", "id": 3088, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "5201:12:19", "nodeType": "FunctionDefinition", "overrides": {"id": 3064, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5301:8:19"}, "parameters": {"id": 3063, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3058, "mutability": "mutable", "name": "from", "nameLocation": "5231:4:19", "nodeType": "VariableDeclaration", "scope": 3088, "src": "5223:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3057, "name": "address", "nodeType": "ElementaryTypeName", "src": "5223:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3060, "mutability": "mutable", "name": "to", "nameLocation": "5253:2:19", "nodeType": "VariableDeclaration", "scope": 3088, "src": "5245:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3059, "name": "address", "nodeType": "ElementaryTypeName", "src": "5245:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3062, "mutability": "mutable", "name": "amount", "nameLocation": "5273:6:19", "nodeType": "VariableDeclaration", "scope": 3088, "src": "5265:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3061, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5265:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5213:72:19"}, "returnParameters": {"id": 3067, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3066, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3088, "src": "5319:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3065, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5319:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "5318:6:19"}, "scope": 3474, "src": "5192:286:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"body": {"id": 3116, "nodeType": "Block", "src": "5967:140:19", "statements": [{"assignments": [3099], "declarations": [{"constant": false, "id": 3099, "mutability": "mutable", "name": "owner", "nameLocation": "5985:5:19", "nodeType": "VariableDeclaration", "scope": 3116, "src": "5977:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3098, "name": "address", "nodeType": "ElementaryTypeName", "src": "5977:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 3102, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 3100, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "5993:10:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3101, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5993:12:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "5977:28:19"}, {"expression": {"arguments": [{"id": 3104, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3099, "src": "6024:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3105, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3091, "src": "6031:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3111, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"id": 3107, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3099, "src": "6050:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3108, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3091, "src": "6057:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 3106, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3030, "src": "6040:9:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)"}}, "id": 3109, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6040:25:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"id": 3110, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3093, "src": "6068:10:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6040:38:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3103, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3408, "src": "6015:8:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3112, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6015:64:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3113, "nodeType": "ExpressionStatement", "src": "6015:64:19"}, {"expression": {"hexValue": "74727565", "id": 3114, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6096:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "functionReturnParameters": 3097, "id": 3115, "nodeType": "Return", "src": "6089:11:19"}]}, "documentation": {"id": 3089, "nodeType": "StructuredDocumentation", "src": "5484:384:19", "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."}, "functionSelector": "39509351", "id": 3117, "implemented": true, "kind": "function", "modifiers": [], "name": "increaseAllowance", "nameLocation": "5882:17:19", "nodeType": "FunctionDefinition", "parameters": {"id": 3094, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3091, "mutability": "mutable", "name": "spender", "nameLocation": "5908:7:19", "nodeType": "VariableDeclaration", "scope": 3117, "src": "5900:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3090, "name": "address", "nodeType": "ElementaryTypeName", "src": "5900:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3093, "mutability": "mutable", "name": "addedValue", "nameLocation": "5925:10:19", "nodeType": "VariableDeclaration", "scope": 3117, "src": "5917:18:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3092, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5917:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5899:37:19"}, "returnParameters": {"id": 3097, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3096, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3117, "src": "5961:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3095, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5961:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "5960:6:19"}, "scope": 3474, "src": "5873:234:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"body": {"id": 3157, "nodeType": "Block", "src": "6693:328:19", "statements": [{"assignments": [3128], "declarations": [{"constant": false, "id": 3128, "mutability": "mutable", "name": "owner", "nameLocation": "6711:5:19", "nodeType": "VariableDeclaration", "scope": 3157, "src": "6703:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3127, "name": "address", "nodeType": "ElementaryTypeName", "src": "6703:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 3131, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 3129, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "6719:10:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3130, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6719:12:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "6703:28:19"}, {"assignments": [3133], "declarations": [{"constant": false, "id": 3133, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "6749:16:19", "nodeType": "VariableDeclaration", "scope": 3157, "src": "6741:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3132, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6741:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 3138, "initialValue": {"arguments": [{"id": 3135, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3128, "src": "6778:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3136, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3120, "src": "6785:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 3134, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3030, "src": "6768:9:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)"}}, "id": 3137, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6768:25:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "6741:52:19"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3140, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3133, "src": "6811:16:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 3141, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3122, "src": "6831:15:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6811:35:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", "id": 3143, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6848:39:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", "typeString": "literal_string \"ERC20: decreased allowance below zero\""}, "value": "ERC20: decreased allowance below zero"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", "typeString": "literal_string \"ERC20: decreased allowance below zero\""}], "id": 3139, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6803:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3144, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6803:85:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3145, "nodeType": "ExpressionStatement", "src": "6803:85:19"}, {"id": 3154, "nodeType": "UncheckedBlock", "src": "6898:95:19", "statements": [{"expression": {"arguments": [{"id": 3147, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3128, "src": "6931:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3148, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3120, "src": "6938:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3151, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3149, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3133, "src": "6947:16:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"id": 3150, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3122, "src": "6966:15:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6947:34:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3146, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3408, "src": "6922:8:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3152, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6922:60:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3153, "nodeType": "ExpressionStatement", "src": "6922:60:19"}]}, {"expression": {"hexValue": "74727565", "id": 3155, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "7010:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "functionReturnParameters": 3126, "id": 3156, "nodeType": "Return", "src": "7003:11:19"}]}, "documentation": {"id": 3118, "nodeType": "StructuredDocumentation", "src": "6113:476:19", "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."}, "functionSelector": "a457c2d7", "id": 3158, "implemented": true, "kind": "function", "modifiers": [], "name": "decreaseAllowance", "nameLocation": "6603:17:19", "nodeType": "FunctionDefinition", "parameters": {"id": 3123, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3120, "mutability": "mutable", "name": "spender", "nameLocation": "6629:7:19", "nodeType": "VariableDeclaration", "scope": 3158, "src": "6621:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3119, "name": "address", "nodeType": "ElementaryTypeName", "src": "6621:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3122, "mutability": "mutable", "name": "subtractedValue", "nameLocation": "6646:15:19", "nodeType": "VariableDeclaration", "scope": 3158, "src": "6638:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3121, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6638:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "6620:42:19"}, "returnParameters": {"id": 3126, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3125, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3158, "src": "6687:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3124, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6687:4:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "6686:6:19"}, "scope": 3474, "src": "6594:427:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"body": {"id": 3234, "nodeType": "Block", "src": "7583:543:19", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3169, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "7601:4:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 3172, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7617:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3171, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7609:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3170, "name": "address", "nodeType": "ElementaryTypeName", "src": "7609:7:19", "typeDescriptions": {}}}, "id": 3173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7609:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "7601:18:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", "id": 3175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7621:39:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", "typeString": "literal_string \"ERC20: transfer from the zero address\""}, "value": "ERC20: transfer from the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", "typeString": "literal_string \"ERC20: transfer from the zero address\""}], "id": 3168, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "7593:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3176, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7593:68:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3177, "nodeType": "ExpressionStatement", "src": "7593:68:19"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3184, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3179, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3163, "src": "7679:2:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 3182, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7693:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3181, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7685:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3180, "name": "address", "nodeType": "ElementaryTypeName", "src": "7685:7:19", "typeDescriptions": {}}}, "id": 3183, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7685:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "7679:16:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", "id": 3185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7697:37:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", "typeString": "literal_string \"ERC20: transfer to the zero address\""}, "value": "ERC20: transfer to the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", "typeString": "literal_string \"ERC20: transfer to the zero address\""}], "id": 3178, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "7671:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3186, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7671:64:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3187, "nodeType": "ExpressionStatement", "src": "7671:64:19"}, {"expression": {"arguments": [{"id": 3189, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "7767:4:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3190, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3163, "src": "7773:2:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3191, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3165, "src": "7777:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3188, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3462, "src": "7746:20:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3192, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7746:38:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3193, "nodeType": "ExpressionStatement", "src": "7746:38:19"}, {"assignments": [3195], "declarations": [{"constant": false, "id": 3195, "mutability": "mutable", "name": "fromBalance", "nameLocation": "7803:11:19", "nodeType": "VariableDeclaration", "scope": 3234, "src": "7795:19:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3194, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7795:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 3199, "initialValue": {"baseExpression": {"id": 3196, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2904, "src": "7817:9:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 3198, "indexExpression": {"id": 3197, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "7827:4:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7817:15:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "7795:37:19"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3203, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3201, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3195, "src": "7850:11:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 3202, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3165, "src": "7865:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7850:21:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", "id": 3204, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7873:40:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", "typeString": "literal_string \"ERC20: transfer amount exceeds balance\""}, "value": "ERC20: transfer amount exceeds balance"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", "typeString": "literal_string \"ERC20: transfer amount exceeds balance\""}], "id": 3200, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "7842:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3205, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7842:72:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3206, "nodeType": "ExpressionStatement", "src": "7842:72:19"}, {"id": 3215, "nodeType": "UncheckedBlock", "src": "7924:73:19", "statements": [{"expression": {"id": 3213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 3207, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2904, "src": "7948:9:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 3209, "indexExpression": {"id": 3208, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "7958:4:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7948:15:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3210, "name": "fromBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3195, "src": "7966:11:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"id": 3211, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3165, "src": "7980:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7966:20:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7948:38:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 3214, "nodeType": "ExpressionStatement", "src": "7948:38:19"}]}, {"expression": {"id": 3220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 3216, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2904, "src": "8006:9:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 3218, "indexExpression": {"id": 3217, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3163, "src": "8016:2:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8006:13:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 3219, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3165, "src": "8023:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8006:23:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 3221, "nodeType": "ExpressionStatement", "src": "8006:23:19"}, {"eventCall": {"arguments": [{"id": 3223, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "8054:4:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3224, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3163, "src": "8060:2:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3225, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3165, "src": "8064:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3222, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3486, "src": "8045:8:19", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3226, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8045:26:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3227, "nodeType": "EmitStatement", "src": "8040:31:19"}, {"expression": {"arguments": [{"id": 3229, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3161, "src": "8102:4:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3230, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3163, "src": "8108:2:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3231, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3165, "src": "8112:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3228, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3473, "src": "8082:19:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3232, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8082:37:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3233, "nodeType": "ExpressionStatement", "src": "8082:37:19"}]}, "documentation": {"id": 3159, "nodeType": "StructuredDocumentation", "src": "7027:443:19", "text": " @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."}, "id": 3235, "implemented": true, "kind": "function", "modifiers": [], "name": "_transfer", "nameLocation": "7484:9:19", "nodeType": "FunctionDefinition", "parameters": {"id": 3166, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3161, "mutability": "mutable", "name": "from", "nameLocation": "7511:4:19", "nodeType": "VariableDeclaration", "scope": 3235, "src": "7503:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3160, "name": "address", "nodeType": "ElementaryTypeName", "src": "7503:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3163, "mutability": "mutable", "name": "to", "nameLocation": "7533:2:19", "nodeType": "VariableDeclaration", "scope": 3235, "src": "7525:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3162, "name": "address", "nodeType": "ElementaryTypeName", "src": "7525:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3165, "mutability": "mutable", "name": "amount", "nameLocation": "7553:6:19", "nodeType": "VariableDeclaration", "scope": 3235, "src": "7545:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3164, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7545:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "7493:72:19"}, "returnParameters": {"id": 3167, "nodeType": "ParameterList", "parameters": [], "src": "7583:0:19"}, "scope": 3474, "src": "7475:651:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 3290, "nodeType": "Block", "src": "8467:324:19", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3244, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3238, "src": "8485:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 3247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8504:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3246, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8496:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3245, "name": "address", "nodeType": "ElementaryTypeName", "src": "8496:7:19", "typeDescriptions": {}}}, "id": 3248, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8496:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "8485:21:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", "id": 3250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8508:33:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", "typeString": "literal_string \"ERC20: mint to the zero address\""}, "value": "ERC20: mint to the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", "typeString": "literal_string \"ERC20: mint to the zero address\""}], "id": 3243, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "8477:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3251, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8477:65:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3252, "nodeType": "ExpressionStatement", "src": "8477:65:19"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 3256, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8582:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3255, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8574:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3254, "name": "address", "nodeType": "ElementaryTypeName", "src": "8574:7:19", "typeDescriptions": {}}}, "id": 3257, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8574:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3258, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3238, "src": "8586:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3259, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3240, "src": "8595:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3253, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3462, "src": "8553:20:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3260, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8553:49:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3261, "nodeType": "ExpressionStatement", "src": "8553:49:19"}, {"expression": {"id": 3264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 3262, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2912, "src": "8613:12:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 3263, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3240, "src": "8629:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8613:22:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 3265, "nodeType": "ExpressionStatement", "src": "8613:22:19"}, {"expression": {"id": 3270, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 3266, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2904, "src": "8645:9:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 3268, "indexExpression": {"id": 3267, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3238, "src": "8655:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8645:18:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 3269, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3240, "src": "8667:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8645:28:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 3271, "nodeType": "ExpressionStatement", "src": "8645:28:19"}, {"eventCall": {"arguments": [{"arguments": [{"hexValue": "30", "id": 3275, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8705:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3274, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8697:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3273, "name": "address", "nodeType": "ElementaryTypeName", "src": "8697:7:19", "typeDescriptions": {}}}, "id": 3276, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8697:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3277, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3238, "src": "8709:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3278, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3240, "src": "8718:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3272, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3486, "src": "8688:8:19", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3279, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8688:37:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3280, "nodeType": "EmitStatement", "src": "8683:42:19"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 3284, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8764:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3283, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8756:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3282, "name": "address", "nodeType": "ElementaryTypeName", "src": "8756:7:19", "typeDescriptions": {}}}, "id": 3285, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8756:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3286, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3238, "src": "8768:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3287, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3240, "src": "8777:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3281, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3473, "src": "8736:19:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3288, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8736:48:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3289, "nodeType": "ExpressionStatement", "src": "8736:48:19"}]}, "documentation": {"id": 3236, "nodeType": "StructuredDocumentation", "src": "8132:265:19", "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."}, "id": 3291, "implemented": true, "kind": "function", "modifiers": [], "name": "_mint", "nameLocation": "8411:5:19", "nodeType": "FunctionDefinition", "parameters": {"id": 3241, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3238, "mutability": "mutable", "name": "account", "nameLocation": "8425:7:19", "nodeType": "VariableDeclaration", "scope": 3291, "src": "8417:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3237, "name": "address", "nodeType": "ElementaryTypeName", "src": "8417:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3240, "mutability": "mutable", "name": "amount", "nameLocation": "8442:6:19", "nodeType": "VariableDeclaration", "scope": 3291, "src": "8434:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3239, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8434:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "8416:33:19"}, "returnParameters": {"id": 3242, "nodeType": "ParameterList", "parameters": [], "src": "8467:0:19"}, "scope": 3474, "src": "8402:389:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 3362, "nodeType": "Block", "src": "9176:511:19", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3300, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3294, "src": "9194:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 3303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9213:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9205:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3301, "name": "address", "nodeType": "ElementaryTypeName", "src": "9205:7:19", "typeDescriptions": {}}}, "id": 3304, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9205:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "9194:21:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", "id": 3306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9217:35:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", "typeString": "literal_string \"ERC20: burn from the zero address\""}, "value": "ERC20: burn from the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", "typeString": "literal_string \"ERC20: burn from the zero address\""}], "id": 3299, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "9186:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3307, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9186:67:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3308, "nodeType": "ExpressionStatement", "src": "9186:67:19"}, {"expression": {"arguments": [{"id": 3310, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3294, "src": "9285:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"hexValue": "30", "id": 3313, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9302:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3312, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9294:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3311, "name": "address", "nodeType": "ElementaryTypeName", "src": "9294:7:19", "typeDescriptions": {}}}, "id": 3314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9294:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3315, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3296, "src": "9306:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3309, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3462, "src": "9264:20:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3316, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9264:49:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3317, "nodeType": "ExpressionStatement", "src": "9264:49:19"}, {"assignments": [3319], "declarations": [{"constant": false, "id": 3319, "mutability": "mutable", "name": "accountBalance", "nameLocation": "9332:14:19", "nodeType": "VariableDeclaration", "scope": 3362, "src": "9324:22:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3318, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9324:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 3323, "initialValue": {"baseExpression": {"id": 3320, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2904, "src": "9349:9:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 3322, "indexExpression": {"id": 3321, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3294, "src": "9359:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9349:18:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "9324:43:19"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3325, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "9385:14:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 3326, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3296, "src": "9403:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "9385:24:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", "id": 3328, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9411:36:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", "typeString": "literal_string \"ERC20: burn amount exceeds balance\""}, "value": "ERC20: burn amount exceeds balance"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", "typeString": "literal_string \"ERC20: burn amount exceeds balance\""}], "id": 3324, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "9377:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3329, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9377:71:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3330, "nodeType": "ExpressionStatement", "src": "9377:71:19"}, {"id": 3339, "nodeType": "UncheckedBlock", "src": "9458:79:19", "statements": [{"expression": {"id": 3337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 3331, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2904, "src": "9482:9:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 3333, "indexExpression": {"id": 3332, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3294, "src": "9492:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9482:18:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3334, "name": "accountBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3319, "src": "9503:14:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"id": 3335, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3296, "src": "9520:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "9503:23:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "9482:44:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 3338, "nodeType": "ExpressionStatement", "src": "9482:44:19"}]}, {"expression": {"id": 3342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 3340, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2912, "src": "9546:12:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"id": 3341, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3296, "src": "9562:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "9546:22:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 3343, "nodeType": "ExpressionStatement", "src": "9546:22:19"}, {"eventCall": {"arguments": [{"id": 3345, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3294, "src": "9593:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"hexValue": "30", "id": 3348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9610:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3347, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9602:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3346, "name": "address", "nodeType": "ElementaryTypeName", "src": "9602:7:19", "typeDescriptions": {}}}, "id": 3349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9602:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3350, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3296, "src": "9614:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3344, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3486, "src": "9584:8:19", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3351, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9584:37:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3352, "nodeType": "EmitStatement", "src": "9579:42:19"}, {"expression": {"arguments": [{"id": 3354, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3294, "src": "9652:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"hexValue": "30", "id": 3357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9669:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3356, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9661:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3355, "name": "address", "nodeType": "ElementaryTypeName", "src": "9661:7:19", "typeDescriptions": {}}}, "id": 3358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9661:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3359, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3296, "src": "9673:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3353, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3473, "src": "9632:19:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3360, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9632:48:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3361, "nodeType": "ExpressionStatement", "src": "9632:48:19"}]}, "documentation": {"id": 3292, "nodeType": "StructuredDocumentation", "src": "8797:309:19", "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."}, "id": 3363, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nameLocation": "9120:5:19", "nodeType": "FunctionDefinition", "parameters": {"id": 3297, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3294, "mutability": "mutable", "name": "account", "nameLocation": "9134:7:19", "nodeType": "VariableDeclaration", "scope": 3363, "src": "9126:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3293, "name": "address", "nodeType": "ElementaryTypeName", "src": "9126:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3296, "mutability": "mutable", "name": "amount", "nameLocation": "9151:6:19", "nodeType": "VariableDeclaration", "scope": 3363, "src": "9143:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3295, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9143:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "9125:33:19"}, "returnParameters": {"id": 3298, "nodeType": "ParameterList", "parameters": [], "src": "9176:0:19"}, "scope": 3474, "src": "9111:576:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 3407, "nodeType": "Block", "src": "10223:257:19", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3374, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3366, "src": "10241:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 3377, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10258:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3376, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10250:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3375, "name": "address", "nodeType": "ElementaryTypeName", "src": "10250:7:19", "typeDescriptions": {}}}, "id": 3378, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10250:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "10241:19:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", "id": 3380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10262:38:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", "typeString": "literal_string \"ERC20: approve from the zero address\""}, "value": "ERC20: approve from the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", "typeString": "literal_string \"ERC20: approve from the zero address\""}], "id": 3373, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "10233:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3381, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10233:68:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3382, "nodeType": "ExpressionStatement", "src": "10233:68:19"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3384, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3368, "src": "10319:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 3387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10338:1:19", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3386, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10330:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3385, "name": "address", "nodeType": "ElementaryTypeName", "src": "10330:7:19", "typeDescriptions": {}}}, "id": 3388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10330:10:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "10319:21:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", "id": 3390, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10342:36:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", "typeString": "literal_string \"ERC20: approve to the zero address\""}, "value": "ERC20: approve to the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", "typeString": "literal_string \"ERC20: approve to the zero address\""}], "id": 3383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "10311:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3391, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10311:68:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3392, "nodeType": "ExpressionStatement", "src": "10311:68:19"}, {"expression": {"id": 3399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"baseExpression": {"id": 3393, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2910, "src": "10390:11:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))"}}, "id": 3396, "indexExpression": {"id": 3394, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3366, "src": "10402:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10390:18:19", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 3397, "indexExpression": {"id": 3395, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3368, "src": "10409:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10390:27:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 3398, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3370, "src": "10420:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "10390:36:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 3400, "nodeType": "ExpressionStatement", "src": "10390:36:19"}, {"eventCall": {"arguments": [{"id": 3402, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3366, "src": "10450:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3403, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3368, "src": "10457:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3404, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3370, "src": "10466:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3401, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3495, "src": "10441:8:19", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3405, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10441:32:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3406, "nodeType": "EmitStatement", "src": "10436:37:19"}]}, "documentation": {"id": 3364, "nodeType": "StructuredDocumentation", "src": "9693:412:19", "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."}, "id": 3408, "implemented": true, "kind": "function", "modifiers": [], "name": "_approve", "nameLocation": "10119:8:19", "nodeType": "FunctionDefinition", "parameters": {"id": 3371, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3366, "mutability": "mutable", "name": "owner", "nameLocation": "10145:5:19", "nodeType": "VariableDeclaration", "scope": 3408, "src": "10137:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3365, "name": "address", "nodeType": "ElementaryTypeName", "src": "10137:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3368, "mutability": "mutable", "name": "spender", "nameLocation": "10168:7:19", "nodeType": "VariableDeclaration", "scope": 3408, "src": "10160:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3367, "name": "address", "nodeType": "ElementaryTypeName", "src": "10160:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3370, "mutability": "mutable", "name": "amount", "nameLocation": "10193:6:19", "nodeType": "VariableDeclaration", "scope": 3408, "src": "10185:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3369, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10185:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "10127:78:19"}, "returnParameters": {"id": 3372, "nodeType": "ParameterList", "parameters": [], "src": "10223:0:19"}, "scope": 3474, "src": "10110:370:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 3450, "nodeType": "Block", "src": "10881:321:19", "statements": [{"assignments": [3419], "declarations": [{"constant": false, "id": 3419, "mutability": "mutable", "name": "currentAllowance", "nameLocation": "10899:16:19", "nodeType": "VariableDeclaration", "scope": 3450, "src": "10891:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3418, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10891:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 3424, "initialValue": {"arguments": [{"id": 3421, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3411, "src": "10928:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3422, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3413, "src": "10935:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 3420, "name": "allowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3030, "src": "10918:9:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)"}}, "id": 3423, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10918:25:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "10891:52:19"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3425, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3419, "src": "10957:16:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"expression": {"arguments": [{"id": 3428, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10982:7:19", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)"}, "typeName": {"id": 3427, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10982:7:19", "typeDescriptions": {}}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)"}], "id": 3426, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "10977:4:19", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 3429, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10977:13:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_uint256", "typeString": "type(uint256)"}}, "id": 3430, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "10991:3:19", "memberName": "max", "nodeType": "MemberAccess", "src": "10977:17:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "10957:37:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 3449, "nodeType": "IfStatement", "src": "10953:243:19", "trueBody": {"id": 3448, "nodeType": "Block", "src": "10996:200:19", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3433, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3419, "src": "11018:16:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 3434, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3415, "src": "11038:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "11018:26:19", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", "id": 3436, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11046:31:19", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", "typeString": "literal_string \"ERC20: insufficient allowance\""}, "value": "ERC20: insufficient allowance"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", "typeString": "literal_string \"ERC20: insufficient allowance\""}], "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "11010:7:19", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3437, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11010:68:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3438, "nodeType": "ExpressionStatement", "src": "11010:68:19"}, {"id": 3447, "nodeType": "UncheckedBlock", "src": "11092:94:19", "statements": [{"expression": {"arguments": [{"id": 3440, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3411, "src": "11129:5:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3441, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3413, "src": "11136:7:19", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3442, "name": "currentAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3419, "src": "11145:16:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"id": 3443, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3415, "src": "11164:6:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "11145:25:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3439, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3408, "src": "11120:8:19", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3445, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11120:51:19", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3446, "nodeType": "ExpressionStatement", "src": "11120:51:19"}]}]}}]}, "documentation": {"id": 3409, "nodeType": "StructuredDocumentation", "src": "10486:270:19", "text": " @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."}, "id": 3451, "implemented": true, "kind": "function", "modifiers": [], "name": "_spendAllowance", "nameLocation": "10770:15:19", "nodeType": "FunctionDefinition", "parameters": {"id": 3416, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3411, "mutability": "mutable", "name": "owner", "nameLocation": "10803:5:19", "nodeType": "VariableDeclaration", "scope": 3451, "src": "10795:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3410, "name": "address", "nodeType": "ElementaryTypeName", "src": "10795:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3413, "mutability": "mutable", "name": "spender", "nameLocation": "10826:7:19", "nodeType": "VariableDeclaration", "scope": 3451, "src": "10818:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3412, "name": "address", "nodeType": "ElementaryTypeName", "src": "10818:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3415, "mutability": "mutable", "name": "amount", "nameLocation": "10851:6:19", "nodeType": "VariableDeclaration", "scope": 3451, "src": "10843:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3414, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10843:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "10785:78:19"}, "returnParameters": {"id": 3417, "nodeType": "ParameterList", "parameters": [], "src": "10881:0:19"}, "scope": 3474, "src": "10761:441:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 3461, "nodeType": "Block", "src": "11905:2:19", "statements": []}, "documentation": {"id": 3452, "nodeType": "StructuredDocumentation", "src": "11208:573:19", "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."}, "id": 3462, "implemented": true, "kind": "function", "modifiers": [], "name": "_beforeTokenTransfer", "nameLocation": "11795:20:19", "nodeType": "FunctionDefinition", "parameters": {"id": 3459, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3454, "mutability": "mutable", "name": "from", "nameLocation": "11833:4:19", "nodeType": "VariableDeclaration", "scope": 3462, "src": "11825:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3453, "name": "address", "nodeType": "ElementaryTypeName", "src": "11825:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3456, "mutability": "mutable", "name": "to", "nameLocation": "11855:2:19", "nodeType": "VariableDeclaration", "scope": 3462, "src": "11847:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3455, "name": "address", "nodeType": "ElementaryTypeName", "src": "11847:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3458, "mutability": "mutable", "name": "amount", "nameLocation": "11875:6:19", "nodeType": "VariableDeclaration", "scope": 3462, "src": "11867:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3457, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11867:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "11815:72:19"}, "returnParameters": {"id": 3460, "nodeType": "ParameterList", "parameters": [], "src": "11905:0:19"}, "scope": 3474, "src": "11786:121:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 3472, "nodeType": "Block", "src": "12613:2:19", "statements": []}, "documentation": {"id": 3463, "nodeType": "StructuredDocumentation", "src": "11913:577:19", "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."}, "id": 3473, "implemented": true, "kind": "function", "modifiers": [], "name": "_afterTokenTransfer", "nameLocation": "12504:19:19", "nodeType": "FunctionDefinition", "parameters": {"id": 3470, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3465, "mutability": "mutable", "name": "from", "nameLocation": "12541:4:19", "nodeType": "VariableDeclaration", "scope": 3473, "src": "12533:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3464, "name": "address", "nodeType": "ElementaryTypeName", "src": "12533:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3467, "mutability": "mutable", "name": "to", "nameLocation": "12563:2:19", "nodeType": "VariableDeclaration", "scope": 3473, "src": "12555:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3466, "name": "address", "nodeType": "ElementaryTypeName", "src": "12555:7:19", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3469, "mutability": "mutable", "name": "amount", "nameLocation": "12583:6:19", "nodeType": "VariableDeclaration", "scope": 3473, "src": "12575:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3468, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12575:7:19", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "12523:72:19"}, "returnParameters": {"id": 3471, "nodeType": "ParameterList", "parameters": [], "src": "12613:0:19"}, "scope": 3474, "src": "12495:120:19", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}], "scope": 3475, "src": "1403:11214:19", "usedErrors": []}], "src": "105:12513:19"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": {"IERC20": [3552]}, "id": 3553, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 3476, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "106:23:20"}, {"abstract": false, "baseContracts": [], "canonicalName": "IERC20", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 3477, "nodeType": "StructuredDocumentation", "src": "131:70:20", "text": " @dev Interface of the ERC20 standard as defined in the EIP."}, "fullyImplemented": false, "id": 3552, "linearizedBaseContracts": [3552], "name": "IERC20", "nameLocation": "212:6:20", "nodeType": "ContractDefinition", "nodes": [{"anonymous": false, "documentation": {"id": 3478, "nodeType": "StructuredDocumentation", "src": "225:158:20", "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."}, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "id": 3486, "name": "Transfer", "nameLocation": "394:8:20", "nodeType": "EventDefinition", "parameters": {"id": 3485, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3480, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "419:4:20", "nodeType": "VariableDeclaration", "scope": 3486, "src": "403:20:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3479, "name": "address", "nodeType": "ElementaryTypeName", "src": "403:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3482, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "441:2:20", "nodeType": "VariableDeclaration", "scope": 3486, "src": "425:18:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3481, "name": "address", "nodeType": "ElementaryTypeName", "src": "425:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3484, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "453:5:20", "nodeType": "VariableDeclaration", "scope": 3486, "src": "445:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3483, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "445:7:20", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "402:57:20"}, "src": "388:72:20"}, {"anonymous": false, "documentation": {"id": 3487, "nodeType": "StructuredDocumentation", "src": "466:148:20", "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."}, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", "id": 3495, "name": "Approval", "nameLocation": "625:8:20", "nodeType": "EventDefinition", "parameters": {"id": 3494, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3489, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "650:5:20", "nodeType": "VariableDeclaration", "scope": 3495, "src": "634:21:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3488, "name": "address", "nodeType": "ElementaryTypeName", "src": "634:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3491, "indexed": true, "mutability": "mutable", "name": "spender", "nameLocation": "673:7:20", "nodeType": "VariableDeclaration", "scope": 3495, "src": "657:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3490, "name": "address", "nodeType": "ElementaryTypeName", "src": "657:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3493, "indexed": false, "mutability": "mutable", "name": "value", "nameLocation": "690:5:20", "nodeType": "VariableDeclaration", "scope": 3495, "src": "682:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3492, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "682:7:20", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "633:63:20"}, "src": "619:78:20"}, {"documentation": {"id": 3496, "nodeType": "StructuredDocumentation", "src": "703:66:20", "text": " @dev Returns the amount of tokens in existence."}, "functionSelector": "18160ddd", "id": 3501, "implemented": false, "kind": "function", "modifiers": [], "name": "totalSupply", "nameLocation": "783:11:20", "nodeType": "FunctionDefinition", "parameters": {"id": 3497, "nodeType": "ParameterList", "parameters": [], "src": "794:2:20"}, "returnParameters": {"id": 3500, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3499, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3501, "src": "820:7:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3498, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "820:7:20", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "819:9:20"}, "scope": 3552, "src": "774:55:20", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 3502, "nodeType": "StructuredDocumentation", "src": "835:72:20", "text": " @dev Returns the amount of tokens owned by `account`."}, "functionSelector": "70a08231", "id": 3509, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "921:9:20", "nodeType": "FunctionDefinition", "parameters": {"id": 3505, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3504, "mutability": "mutable", "name": "account", "nameLocation": "939:7:20", "nodeType": "VariableDeclaration", "scope": 3509, "src": "931:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3503, "name": "address", "nodeType": "ElementaryTypeName", "src": "931:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "930:17:20"}, "returnParameters": {"id": 3508, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3507, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3509, "src": "971:7:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3506, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "971:7:20", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "970:9:20"}, "scope": 3552, "src": "912:68:20", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 3510, "nodeType": "StructuredDocumentation", "src": "986:202:20", "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."}, "functionSelector": "a9059cbb", "id": 3519, "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", "nameLocation": "1202:8:20", "nodeType": "FunctionDefinition", "parameters": {"id": 3515, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3512, "mutability": "mutable", "name": "to", "nameLocation": "1219:2:20", "nodeType": "VariableDeclaration", "scope": 3519, "src": "1211:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3511, "name": "address", "nodeType": "ElementaryTypeName", "src": "1211:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3514, "mutability": "mutable", "name": "amount", "nameLocation": "1231:6:20", "nodeType": "VariableDeclaration", "scope": 3519, "src": "1223:14:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3513, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1223:7:20", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1210:28:20"}, "returnParameters": {"id": 3518, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3517, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3519, "src": "1257:4:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3516, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1257:4:20", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "1256:6:20"}, "scope": 3552, "src": "1193:70:20", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 3520, "nodeType": "StructuredDocumentation", "src": "1269:264:20", "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."}, "functionSelector": "dd62ed3e", "id": 3529, "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", "nameLocation": "1547:9:20", "nodeType": "FunctionDefinition", "parameters": {"id": 3525, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3522, "mutability": "mutable", "name": "owner", "nameLocation": "1565:5:20", "nodeType": "VariableDeclaration", "scope": 3529, "src": "1557:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3521, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3524, "mutability": "mutable", "name": "spender", "nameLocation": "1580:7:20", "nodeType": "VariableDeclaration", "scope": 3529, "src": "1572:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3523, "name": "address", "nodeType": "ElementaryTypeName", "src": "1572:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1556:32:20"}, "returnParameters": {"id": 3528, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3527, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3529, "src": "1612:7:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3526, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1612:7:20", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1611:9:20"}, "scope": 3552, "src": "1538:83:20", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 3530, "nodeType": "StructuredDocumentation", "src": "1627:642:20", "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."}, "functionSelector": "095ea7b3", "id": 3539, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "2283:7:20", "nodeType": "FunctionDefinition", "parameters": {"id": 3535, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3532, "mutability": "mutable", "name": "spender", "nameLocation": "2299:7:20", "nodeType": "VariableDeclaration", "scope": 3539, "src": "2291:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3531, "name": "address", "nodeType": "ElementaryTypeName", "src": "2291:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3534, "mutability": "mutable", "name": "amount", "nameLocation": "2316:6:20", "nodeType": "VariableDeclaration", "scope": 3539, "src": "2308:14:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3533, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2308:7:20", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2290:33:20"}, "returnParameters": {"id": 3538, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3537, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3539, "src": "2342:4:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3536, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2342:4:20", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "2341:6:20"}, "scope": 3552, "src": "2274:74:20", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 3540, "nodeType": "StructuredDocumentation", "src": "2354:287:20", "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."}, "functionSelector": "23b872dd", "id": 3551, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "2655:12:20", "nodeType": "FunctionDefinition", "parameters": {"id": 3547, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3542, "mutability": "mutable", "name": "from", "nameLocation": "2685:4:20", "nodeType": "VariableDeclaration", "scope": 3551, "src": "2677:12:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3541, "name": "address", "nodeType": "ElementaryTypeName", "src": "2677:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3544, "mutability": "mutable", "name": "to", "nameLocation": "2707:2:20", "nodeType": "VariableDeclaration", "scope": 3551, "src": "2699:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3543, "name": "address", "nodeType": "ElementaryTypeName", "src": "2699:7:20", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3546, "mutability": "mutable", "name": "amount", "nameLocation": "2727:6:20", "nodeType": "VariableDeclaration", "scope": 3551, "src": "2719:14:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3545, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2719:7:20", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2667:72:20"}, "returnParameters": {"id": 3550, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3549, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3551, "src": "2758:4:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2758:4:20", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "2757:6:20"}, "scope": 3552, "src": "2646:118:20", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 3553, "src": "202:2564:20", "usedErrors": []}], "src": "106:2661:20"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "exportedSymbols": {"IERC20": [3552], "IERC20Metadata": [3577]}, "id": 3578, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 3554, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "110:23:21"}, {"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "../IERC20.sol", "id": 3555, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 3578, "sourceUnit": 3553, "src": "135:23:21", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 3557, "name": "IERC20", "nameLocations": ["305:6:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 3552, "src": "305:6:21"}, "id": 3558, "nodeType": "InheritanceSpecifier", "src": "305:6:21"}], "canonicalName": "IERC20Metadata", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 3556, "nodeType": "StructuredDocumentation", "src": "160:116:21", "text": " @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"}, "fullyImplemented": false, "id": 3577, "linearizedBaseContracts": [3577, 3552], "name": "IERC20Metadata", "nameLocation": "287:14:21", "nodeType": "ContractDefinition", "nodes": [{"documentation": {"id": 3559, "nodeType": "StructuredDocumentation", "src": "318:54:21", "text": " @dev Returns the name of the token."}, "functionSelector": "06fdde03", "id": 3564, "implemented": false, "kind": "function", "modifiers": [], "name": "name", "nameLocation": "386:4:21", "nodeType": "FunctionDefinition", "parameters": {"id": 3560, "nodeType": "ParameterList", "parameters": [], "src": "390:2:21"}, "returnParameters": {"id": 3563, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3562, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3564, "src": "416:13:21", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 3561, "name": "string", "nodeType": "ElementaryTypeName", "src": "416:6:21", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "415:15:21"}, "scope": 3577, "src": "377:54:21", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 3565, "nodeType": "StructuredDocumentation", "src": "437:56:21", "text": " @dev Returns the symbol of the token."}, "functionSelector": "95d89b41", "id": 3570, "implemented": false, "kind": "function", "modifiers": [], "name": "symbol", "nameLocation": "507:6:21", "nodeType": "FunctionDefinition", "parameters": {"id": 3566, "nodeType": "ParameterList", "parameters": [], "src": "513:2:21"}, "returnParameters": {"id": 3569, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3568, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3570, "src": "539:13:21", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 3567, "name": "string", "nodeType": "ElementaryTypeName", "src": "539:6:21", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "538:15:21"}, "scope": 3577, "src": "498:56:21", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 3571, "nodeType": "StructuredDocumentation", "src": "560:65:21", "text": " @dev Returns the decimals places of the token."}, "functionSelector": "313ce567", "id": 3576, "implemented": false, "kind": "function", "modifiers": [], "name": "decimals", "nameLocation": "639:8:21", "nodeType": "FunctionDefinition", "parameters": {"id": 3572, "nodeType": "ParameterList", "parameters": [], "src": "647:2:21"}, "returnParameters": {"id": 3575, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3574, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3576, "src": "673:5:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 3573, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "673:5:21", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "visibility": "internal"}], "src": "672:7:21"}, "scope": 3577, "src": "630:50:21", "stateMutability": "view", "virtual": false, "visibility": "external"}], "scope": 3578, "src": "277:405:21", "usedErrors": []}], "src": "110:573:21"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", "exportedSymbols": {"Address": [5025], "Context": [5047], "ERC165": [5297], "ERC721": [4444], "IERC165": [5309], "IERC721": [4560], "IERC721Metadata": [4730], "IERC721Receiver": [4578], "Strings": [5273]}, "id": 4445, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 3579, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "107:23:22"}, {"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "./IERC721.sol", "id": 3580, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4445, "sourceUnit": 4561, "src": "132:23:22", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "file": "./IERC721Receiver.sol", "id": 3581, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4445, "sourceUnit": 4579, "src": "156:31:22", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", "file": "./extensions/IERC721Metadata.sol", "id": 3582, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4445, "sourceUnit": 4731, "src": "188:42:22", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/utils/Address.sol", "file": "../../utils/Address.sol", "id": 3583, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4445, "sourceUnit": 5026, "src": "231:33:22", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/utils/Context.sol", "file": "../../utils/Context.sol", "id": 3584, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4445, "sourceUnit": 5048, "src": "265:33:22", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "file": "../../utils/Strings.sol", "id": 3585, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4445, "sourceUnit": 5274, "src": "299:33:22", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", "file": "../../utils/introspection/ERC165.sol", "id": 3586, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4445, "sourceUnit": 5298, "src": "333:46:22", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 3588, "name": "Context", "nameLocations": ["647:7:22"], "nodeType": "IdentifierPath", "referencedDeclaration": 5047, "src": "647:7:22"}, "id": 3589, "nodeType": "InheritanceSpecifier", "src": "647:7:22"}, {"baseName": {"id": 3590, "name": "ERC165", "nameLocations": ["656:6:22"], "nodeType": "IdentifierPath", "referencedDeclaration": 5297, "src": "656:6:22"}, "id": 3591, "nodeType": "InheritanceSpecifier", "src": "656:6:22"}, {"baseName": {"id": 3592, "name": "IERC721", "nameLocations": ["664:7:22"], "nodeType": "IdentifierPath", "referencedDeclaration": 4560, "src": "664:7:22"}, "id": 3593, "nodeType": "InheritanceSpecifier", "src": "664:7:22"}, {"baseName": {"id": 3594, "name": "IERC721Metadata", "nameLocations": ["673:15:22"], "nodeType": "IdentifierPath", "referencedDeclaration": 4730, "src": "673:15:22"}, "id": 3595, "nodeType": "InheritanceSpecifier", "src": "673:15:22"}], "canonicalName": "ERC721", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 3587, "nodeType": "StructuredDocumentation", "src": "381:246:22", "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."}, "fullyImplemented": true, "id": 4444, "linearizedBaseContracts": [4444, 4730, 4560, 5297, 5309, 5047], "name": "ERC721", "nameLocation": "637:6:22", "nodeType": "ContractDefinition", "nodes": [{"global": false, "id": 3598, "libraryName": {"id": 3596, "name": "Address", "nameLocations": ["701:7:22"], "nodeType": "IdentifierPath", "referencedDeclaration": 5025, "src": "701:7:22"}, "nodeType": "UsingForDirective", "src": "695:26:22", "typeName": {"id": 3597, "name": "address", "nodeType": "ElementaryTypeName", "src": "713:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}}, {"global": false, "id": 3601, "libraryName": {"id": 3599, "name": "Strings", "nameLocations": ["732:7:22"], "nodeType": "IdentifierPath", "referencedDeclaration": 5273, "src": "732:7:22"}, "nodeType": "UsingForDirective", "src": "726:26:22", "typeName": {"id": 3600, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "744:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}}, {"constant": false, "id": 3603, "mutability": "mutable", "name": "_name", "nameLocation": "791:5:22", "nodeType": "VariableDeclaration", "scope": 4444, "src": "776:20:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string"}, "typeName": {"id": 3602, "name": "string", "nodeType": "ElementaryTypeName", "src": "776:6:22", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "private"}, {"constant": false, "id": 3605, "mutability": "mutable", "name": "_symbol", "nameLocation": "838:7:22", "nodeType": "VariableDeclaration", "scope": 4444, "src": "823:22:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string"}, "typeName": {"id": 3604, "name": "string", "nodeType": "ElementaryTypeName", "src": "823:6:22", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "private"}, {"constant": false, "id": 3609, "mutability": "mutable", "name": "_owners", "nameLocation": "934:7:22", "nodeType": "VariableDeclaration", "scope": 4444, "src": "898:43:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}, "typeName": {"id": 3608, "keyType": {"id": 3606, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "906:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Mapping", "src": "898:27:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}, "valueType": {"id": 3607, "name": "address", "nodeType": "ElementaryTypeName", "src": "917:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}}, "visibility": "private"}, {"constant": false, "id": 3613, "mutability": "mutable", "name": "_balances", "nameLocation": "1028:9:22", "nodeType": "VariableDeclaration", "scope": 4444, "src": "992:45:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}, "typeName": {"id": 3612, "keyType": {"id": 3610, "name": "address", "nodeType": "ElementaryTypeName", "src": "1000:7:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "992:27:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}, "valueType": {"id": 3611, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1011:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}}, "visibility": "private"}, {"constant": false, "id": 3617, "mutability": "mutable", "name": "_tokenApprovals", "nameLocation": "1129:15:22", "nodeType": "VariableDeclaration", "scope": 4444, "src": "1093:51:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}, "typeName": {"id": 3616, "keyType": {"id": 3614, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1101:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Mapping", "src": "1093:27:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}, "valueType": {"id": 3615, "name": "address", "nodeType": "ElementaryTypeName", "src": "1112:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}}, "visibility": "private"}, {"constant": false, "id": 3623, "mutability": "mutable", "name": "_operatorApprovals", "nameLocation": "1252:18:22", "nodeType": "VariableDeclaration", "scope": 4444, "src": "1199:71:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))"}, "typeName": {"id": 3622, "keyType": {"id": 3618, "name": "address", "nodeType": "ElementaryTypeName", "src": "1207:7:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1199:44:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))"}, "valueType": {"id": 3621, "keyType": {"id": 3619, "name": "address", "nodeType": "ElementaryTypeName", "src": "1226:7:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1218:24:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}, "valueType": {"id": 3620, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1237:4:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}}}, "visibility": "private"}, {"body": {"id": 3639, "nodeType": "Block", "src": "1446:57:22", "statements": [{"expression": {"id": 3633, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 3631, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3603, "src": "1456:5:22", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 3632, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3626, "src": "1464:5:22", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "src": "1456:13:22", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "id": 3634, "nodeType": "ExpressionStatement", "src": "1456:13:22"}, {"expression": {"id": 3637, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 3635, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3605, "src": "1479:7:22", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 3636, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3628, "src": "1489:7:22", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "src": "1479:17:22", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "id": 3638, "nodeType": "ExpressionStatement", "src": "1479:17:22"}]}, "documentation": {"id": 3624, "nodeType": "StructuredDocumentation", "src": "1277:108:22", "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."}, "id": 3640, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": {"id": 3629, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3626, "mutability": "mutable", "name": "name_", "nameLocation": "1416:5:22", "nodeType": "VariableDeclaration", "scope": 3640, "src": "1402:19:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 3625, "name": "string", "nodeType": "ElementaryTypeName", "src": "1402:6:22", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 3628, "mutability": "mutable", "name": "symbol_", "nameLocation": "1437:7:22", "nodeType": "VariableDeclaration", "scope": 3640, "src": "1423:21:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 3627, "name": "string", "nodeType": "ElementaryTypeName", "src": "1423:6:22", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1401:44:22"}, "returnParameters": {"id": 3630, "nodeType": "ParameterList", "parameters": [], "src": "1446:0:22"}, "scope": 4444, "src": "1390:113:22", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"baseFunctions": [5296, 5308], "body": {"id": 3670, "nodeType": "Block", "src": "1678:192:22", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 3668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 3663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3651, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3643, "src": "1707:11:22", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"arguments": [{"id": 3653, "name": "IERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4560, "src": "1727:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721_$4560_$", "typeString": "type(contract IERC721)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_IERC721_$4560_$", "typeString": "type(contract IERC721)"}], "id": 3652, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "1722:4:22", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1722:13:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$4560", "typeString": "type(contract IERC721)"}}, "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1736:11:22", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "1722:25:22", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "src": "1707:40:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"commonType": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "id": 3662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3657, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3643, "src": "1763:11:22", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"arguments": [{"id": 3659, "name": "IERC721Metadata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4730, "src": "1783:15:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$4730_$", "typeString": "type(contract IERC721Metadata)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$4730_$", "typeString": "type(contract IERC721Metadata)"}], "id": 3658, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "1778:4:22", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 3660, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1778:21:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$4730", "typeString": "type(contract IERC721Metadata)"}}, "id": 3661, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1800:11:22", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "1778:33:22", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "src": "1763:48:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "1707:104:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"arguments": [{"id": 3666, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3643, "src": "1851:11:22", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "expression": {"id": 3664, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "1827:5:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_ERC721_$4444_$", "typeString": "type(contract super ERC721)"}}, "id": 3665, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1833:17:22", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 5296, "src": "1827:23:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) view returns (bool)"}}, "id": 3667, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1827:36:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "1707:156:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 3650, "id": 3669, "nodeType": "Return", "src": "1688:175:22"}]}, "documentation": {"id": 3641, "nodeType": "StructuredDocumentation", "src": "1509:56:22", "text": " @dev See {IERC165-supportsInterface}."}, "functionSelector": "01ffc9a7", "id": 3671, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "1579:17:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3647, "nodeType": "OverrideSpecifier", "overrides": [{"id": 3645, "name": "ERC165", "nameLocations": ["1646:6:22"], "nodeType": "IdentifierPath", "referencedDeclaration": 5297, "src": "1646:6:22"}, {"id": 3646, "name": "IERC165", "nameLocations": ["1654:7:22"], "nodeType": "IdentifierPath", "referencedDeclaration": 5309, "src": "1654:7:22"}], "src": "1637:25:22"}, "parameters": {"id": 3644, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3643, "mutability": "mutable", "name": "interfaceId", "nameLocation": "1604:11:22", "nodeType": "VariableDeclaration", "scope": 3671, "src": "1597:18:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 3642, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1597:6:22", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "1596:20:22"}, "returnParameters": {"id": 3650, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3649, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3671, "src": "1672:4:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3648, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1672:4:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "1671:6:22"}, "scope": 4444, "src": "1570:300:22", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [4485], "body": {"id": 3694, "nodeType": "Block", "src": "2010:123:22", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3681, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3674, "src": "2028:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 3684, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2045:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3683, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2037:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3682, "name": "address", "nodeType": "ElementaryTypeName", "src": "2037:7:22", "typeDescriptions": {}}}, "id": 3685, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2037:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2028:19:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572", "id": 3687, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2049:43:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", "typeString": "literal_string \"ERC721: address zero is not a valid owner\""}, "value": "ERC721: address zero is not a valid owner"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", "typeString": "literal_string \"ERC721: address zero is not a valid owner\""}], "id": 3680, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2020:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3688, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2020:73:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3689, "nodeType": "ExpressionStatement", "src": "2020:73:22"}, {"expression": {"baseExpression": {"id": 3690, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3613, "src": "2110:9:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 3692, "indexExpression": {"id": 3691, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3674, "src": "2120:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2110:16:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 3679, "id": 3693, "nodeType": "Return", "src": "2103:23:22"}]}, "documentation": {"id": 3672, "nodeType": "StructuredDocumentation", "src": "1876:48:22", "text": " @dev See {IERC721-balanceOf}."}, "functionSelector": "70a08231", "id": 3695, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "1938:9:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3676, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1983:8:22"}, "parameters": {"id": 3675, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3674, "mutability": "mutable", "name": "owner", "nameLocation": "1956:5:22", "nodeType": "VariableDeclaration", "scope": 3695, "src": "1948:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3673, "name": "address", "nodeType": "ElementaryTypeName", "src": "1948:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1947:15:22"}, "returnParameters": {"id": 3679, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3678, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3695, "src": "2001:7:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3677, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2001:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2000:9:22"}, "scope": 4444, "src": "1929:204:22", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [4493], "body": {"id": 3722, "nodeType": "Block", "src": "2271:137:22", "statements": [{"assignments": [3705], "declarations": [{"constant": false, "id": 3705, "mutability": "mutable", "name": "owner", "nameLocation": "2289:5:22", "nodeType": "VariableDeclaration", "scope": 3722, "src": "2281:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3704, "name": "address", "nodeType": "ElementaryTypeName", "src": "2281:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 3709, "initialValue": {"baseExpression": {"id": 3706, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3609, "src": "2297:7:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 3708, "indexExpression": {"id": 3707, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3698, "src": "2305:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2297:16:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "2281:32:22"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3716, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3705, "src": "2331:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 3714, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2348:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 3713, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2340:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 3712, "name": "address", "nodeType": "ElementaryTypeName", "src": "2340:7:22", "typeDescriptions": {}}}, "id": 3715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2340:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2331:19:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20696e76616c696420746f6b656e204944", "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2352:26:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\""}, "value": "ERC721: invalid token ID"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\""}], "id": 3710, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2323:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3718, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2323:56:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3719, "nodeType": "ExpressionStatement", "src": "2323:56:22"}, {"expression": {"id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3705, "src": "2396:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 3703, "id": 3721, "nodeType": "Return", "src": "2389:12:22"}]}, "documentation": {"id": 3696, "nodeType": "StructuredDocumentation", "src": "2139:46:22", "text": " @dev See {IERC721-ownerOf}."}, "functionSelector": "6352211e", "id": 3723, "implemented": true, "kind": "function", "modifiers": [], "name": "ownerOf", "nameLocation": "2199:7:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3700, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2244:8:22"}, "parameters": {"id": 3699, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3698, "mutability": "mutable", "name": "tokenId", "nameLocation": "2215:7:22", "nodeType": "VariableDeclaration", "scope": 3723, "src": "2207:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3697, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2207:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2206:17:22"}, "returnParameters": {"id": 3703, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3702, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3723, "src": "2262:7:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3701, "name": "address", "nodeType": "ElementaryTypeName", "src": "2262:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2261:9:22"}, "scope": 4444, "src": "2190:218:22", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [4715], "body": {"id": 3732, "nodeType": "Block", "src": "2539:29:22", "statements": [{"expression": {"id": 3730, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3603, "src": "2556:5:22", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "functionReturnParameters": 3729, "id": 3731, "nodeType": "Return", "src": "2549:12:22"}]}, "documentation": {"id": 3724, "nodeType": "StructuredDocumentation", "src": "2414:51:22", "text": " @dev See {IERC721Metadata-name}."}, "functionSelector": "06fdde03", "id": 3733, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nameLocation": "2479:4:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3726, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2506:8:22"}, "parameters": {"id": 3725, "nodeType": "ParameterList", "parameters": [], "src": "2483:2:22"}, "returnParameters": {"id": 3729, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3728, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3733, "src": "2524:13:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 3727, "name": "string", "nodeType": "ElementaryTypeName", "src": "2524:6:22", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2523:15:22"}, "scope": 4444, "src": "2470:98:22", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [4721], "body": {"id": 3742, "nodeType": "Block", "src": "2703:31:22", "statements": [{"expression": {"id": 3740, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3605, "src": "2720:7:22", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "functionReturnParameters": 3739, "id": 3741, "nodeType": "Return", "src": "2713:14:22"}]}, "documentation": {"id": 3734, "nodeType": "StructuredDocumentation", "src": "2574:53:22", "text": " @dev See {IERC721Metadata-symbol}."}, "functionSelector": "95d89b41", "id": 3743, "implemented": true, "kind": "function", "modifiers": [], "name": "symbol", "nameLocation": "2641:6:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3736, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2670:8:22"}, "parameters": {"id": 3735, "nodeType": "ParameterList", "parameters": [], "src": "2647:2:22"}, "returnParameters": {"id": 3739, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3738, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3743, "src": "2688:13:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 3737, "name": "string", "nodeType": "ElementaryTypeName", "src": "2688:6:22", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2687:15:22"}, "scope": 4444, "src": "2632:102:22", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [4729], "body": {"id": 3781, "nodeType": "Block", "src": "2888:188:22", "statements": [{"expression": {"arguments": [{"id": 3753, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3746, "src": "2913:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3752, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4359, "src": "2898:14:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view"}}, "id": 3754, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2898:23:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3755, "nodeType": "ExpressionStatement", "src": "2898:23:22"}, {"assignments": [3757], "declarations": [{"constant": false, "id": 3757, "mutability": "mutable", "name": "baseURI", "nameLocation": "2946:7:22", "nodeType": "VariableDeclaration", "scope": 3781, "src": "2932:21:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 3756, "name": "string", "nodeType": "ElementaryTypeName", "src": "2932:6:22", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "id": 3760, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 3758, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3791, "src": "2956:8:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view returns (string memory)"}}, "id": 3759, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2956:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "nodeType": "VariableDeclarationStatement", "src": "2932:34:22"}, {"expression": {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 3763, "name": "baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3757, "src": "2989:7:22", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 3762, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2983:5:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)"}, "typeName": {"id": 3761, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2983:5:22", "typeDescriptions": {}}}, "id": 3764, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2983:14:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 3765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2998:6:22", "memberName": "length", "nodeType": "MemberAccess", "src": "2983:21:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 3766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3007:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "2983:25:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseExpression": {"hexValue": "", "id": 3778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3067:2:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}, "id": 3779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "2983:86:22", "trueExpression": {"arguments": [{"arguments": [{"id": 3772, "name": "baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3757, "src": "3035:7:22", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 3773, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3746, "src": "3044:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 3774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3052:8:22", "memberName": "toString", "nodeType": "MemberAccess", "referencedDeclaration": 5135, "src": "3044:16:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (string memory)"}}, "id": 3775, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3044:18:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 3770, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3018:3:22", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 3771, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3022:12:22", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "3018:16:22", "typeDescriptions": {"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)"}}, "id": 3776, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3018:45:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 3769, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3011:6:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)"}, "typeName": {"id": 3768, "name": "string", "nodeType": "ElementaryTypeName", "src": "3011:6:22", "typeDescriptions": {}}}, "id": 3777, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3011:53:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 3751, "id": 3780, "nodeType": "Return", "src": "2976:93:22"}]}, "documentation": {"id": 3744, "nodeType": "StructuredDocumentation", "src": "2740:55:22", "text": " @dev See {IERC721Metadata-tokenURI}."}, "functionSelector": "c87b56dd", "id": 3782, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenURI", "nameLocation": "2809:8:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3748, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2855:8:22"}, "parameters": {"id": 3747, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3746, "mutability": "mutable", "name": "tokenId", "nameLocation": "2826:7:22", "nodeType": "VariableDeclaration", "scope": 3782, "src": "2818:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3745, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2818:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2817:17:22"}, "returnParameters": {"id": 3751, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3750, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3782, "src": "2873:13:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 3749, "name": "string", "nodeType": "ElementaryTypeName", "src": "2873:6:22", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2872:15:22"}, "scope": 4444, "src": "2800:276:22", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"body": {"id": 3790, "nodeType": "Block", "src": "3384:26:22", "statements": [{"expression": {"hexValue": "", "id": 3788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3401:2:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}, "functionReturnParameters": 3787, "id": 3789, "nodeType": "Return", "src": "3394:9:22"}]}, "documentation": {"id": 3783, "nodeType": "StructuredDocumentation", "src": "3082:231:22", "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."}, "id": 3791, "implemented": true, "kind": "function", "modifiers": [], "name": "_baseURI", "nameLocation": "3327:8:22", "nodeType": "FunctionDefinition", "parameters": {"id": 3784, "nodeType": "ParameterList", "parameters": [], "src": "3335:2:22"}, "returnParameters": {"id": 3787, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3786, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3791, "src": "3369:13:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 3785, "name": "string", "nodeType": "ElementaryTypeName", "src": "3369:6:22", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "3368:15:22"}, "scope": 4444, "src": "3318:92:22", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"baseFunctions": [4533], "body": {"id": 3833, "nodeType": "Block", "src": "3537:337:22", "statements": [{"assignments": [3801], "declarations": [{"constant": false, "id": 3801, "mutability": "mutable", "name": "owner", "nameLocation": "3555:5:22", "nodeType": "VariableDeclaration", "scope": 3833, "src": "3547:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3800, "name": "address", "nodeType": "ElementaryTypeName", "src": "3547:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 3806, "initialValue": {"arguments": [{"id": 3804, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "3578:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 3802, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4444, "src": "3563:6:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721_$4444_$", "typeString": "type(contract ERC721)"}}, "id": 3803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3570:7:22", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 3723, "src": "3563:14:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 3805, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3563:23:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "3547:39:22"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 3808, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3604:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"id": 3809, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3801, "src": "3610:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "3604:11:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", "id": 3811, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3617:35:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", "typeString": "literal_string \"ERC721: approval to current owner\""}, "value": "ERC721: approval to current owner"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", "typeString": "literal_string \"ERC721: approval to current owner\""}], "id": 3807, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3596:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3812, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3596:57:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3813, "nodeType": "ExpressionStatement", "src": "3596:57:22"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 3824, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 3815, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "3685:10:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3816, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3685:12:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 3817, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3801, "src": "3701:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "3685:21:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"arguments": [{"id": 3820, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3801, "src": "3727:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [], "expression": {"argumentTypes": [], "id": 3821, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "3734:10:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3822, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3734:12:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 3819, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3887, "src": "3710:16:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)"}}, "id": 3823, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3710:37:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "3685:62:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c", "id": 3825, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3761:64:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304", "typeString": "literal_string \"ERC721: approve caller is not token owner nor approved for all\""}, "value": "ERC721: approve caller is not token owner nor approved for all"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304", "typeString": "literal_string \"ERC721: approve caller is not token owner nor approved for all\""}], "id": 3814, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3664:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3826, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3664:171:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3827, "nodeType": "ExpressionStatement", "src": "3664:171:22"}, {"expression": {"arguments": [{"id": 3829, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "3855:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3830, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "3859:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3828, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4313, "src": "3846:8:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 3831, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3846:21:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3832, "nodeType": "ExpressionStatement", "src": "3846:21:22"}]}, "documentation": {"id": 3792, "nodeType": "StructuredDocumentation", "src": "3416:46:22", "text": " @dev See {IERC721-approve}."}, "functionSelector": "095ea7b3", "id": 3834, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "3476:7:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3798, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3528:8:22"}, "parameters": {"id": 3797, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3794, "mutability": "mutable", "name": "to", "nameLocation": "3492:2:22", "nodeType": "VariableDeclaration", "scope": 3834, "src": "3484:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3793, "name": "address", "nodeType": "ElementaryTypeName", "src": "3484:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3796, "mutability": "mutable", "name": "tokenId", "nameLocation": "3504:7:22", "nodeType": "VariableDeclaration", "scope": 3834, "src": "3496:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3795, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3496:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3483:29:22"}, "returnParameters": {"id": 3799, "nodeType": "ParameterList", "parameters": [], "src": "3537:0:22"}, "scope": 4444, "src": "3467:407:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [4549], "body": {"id": 3851, "nodeType": "Block", "src": "4020:82:22", "statements": [{"expression": {"arguments": [{"id": 3844, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3837, "src": "4045:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3843, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4359, "src": "4030:14:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view"}}, "id": 3845, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4030:23:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3846, "nodeType": "ExpressionStatement", "src": "4030:23:22"}, {"expression": {"baseExpression": {"id": 3847, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3617, "src": "4071:15:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 3849, "indexExpression": {"id": 3848, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3837, "src": "4087:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4071:24:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 3842, "id": 3850, "nodeType": "Return", "src": "4064:31:22"}]}, "documentation": {"id": 3835, "nodeType": "StructuredDocumentation", "src": "3880:50:22", "text": " @dev See {IERC721-getApproved}."}, "functionSelector": "081812fc", "id": 3852, "implemented": true, "kind": "function", "modifiers": [], "name": "getApproved", "nameLocation": "3944:11:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3839, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3993:8:22"}, "parameters": {"id": 3838, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3837, "mutability": "mutable", "name": "tokenId", "nameLocation": "3964:7:22", "nodeType": "VariableDeclaration", "scope": 3852, "src": "3956:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3836, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3956:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3955:17:22"}, "returnParameters": {"id": 3842, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3841, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3852, "src": "4011:7:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3840, "name": "address", "nodeType": "ElementaryTypeName", "src": "4011:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "4010:9:22"}, "scope": 4444, "src": "3935:167:22", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [4541], "body": {"id": 3868, "nodeType": "Block", "src": "4253:69:22", "statements": [{"expression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 3862, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "4282:10:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3863, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4282:12:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3864, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3855, "src": "4296:8:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3865, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3857, "src": "4306:8:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 3861, "name": "_setApprovalForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4345, "src": "4263:18:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)"}}, "id": 3866, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4263:52:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3867, "nodeType": "ExpressionStatement", "src": "4263:52:22"}]}, "documentation": {"id": 3853, "nodeType": "StructuredDocumentation", "src": "4108:56:22", "text": " @dev See {IERC721-setApprovalForAll}."}, "functionSelector": "a22cb465", "id": 3869, "implemented": true, "kind": "function", "modifiers": [], "name": "setApprovalForAll", "nameLocation": "4178:17:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3859, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4244:8:22"}, "parameters": {"id": 3858, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3855, "mutability": "mutable", "name": "operator", "nameLocation": "4204:8:22", "nodeType": "VariableDeclaration", "scope": 3869, "src": "4196:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3854, "name": "address", "nodeType": "ElementaryTypeName", "src": "4196:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3857, "mutability": "mutable", "name": "approved", "nameLocation": "4219:8:22", "nodeType": "VariableDeclaration", "scope": 3869, "src": "4214:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3856, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4214:4:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4195:33:22"}, "returnParameters": {"id": 3860, "nodeType": "ParameterList", "parameters": [], "src": "4253:0:22"}, "scope": 4444, "src": "4169:153:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [4559], "body": {"id": 3886, "nodeType": "Block", "src": "4491:59:22", "statements": [{"expression": {"baseExpression": {"baseExpression": {"id": 3880, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3623, "src": "4508:18:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))"}}, "id": 3882, "indexExpression": {"id": 3881, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3872, "src": "4527:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4508:25:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}}, "id": 3884, "indexExpression": {"id": 3883, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3874, "src": "4534:8:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4508:35:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 3879, "id": 3885, "nodeType": "Return", "src": "4501:42:22"}]}, "documentation": {"id": 3870, "nodeType": "StructuredDocumentation", "src": "4328:55:22", "text": " @dev See {IERC721-isApprovedForAll}."}, "functionSelector": "e985e9c5", "id": 3887, "implemented": true, "kind": "function", "modifiers": [], "name": "isApprovedForAll", "nameLocation": "4397:16:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3876, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4467:8:22"}, "parameters": {"id": 3875, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3872, "mutability": "mutable", "name": "owner", "nameLocation": "4422:5:22", "nodeType": "VariableDeclaration", "scope": 3887, "src": "4414:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3871, "name": "address", "nodeType": "ElementaryTypeName", "src": "4414:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3874, "mutability": "mutable", "name": "operator", "nameLocation": "4437:8:22", "nodeType": "VariableDeclaration", "scope": 3887, "src": "4429:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3873, "name": "address", "nodeType": "ElementaryTypeName", "src": "4429:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "4413:33:22"}, "returnParameters": {"id": 3879, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3878, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 3887, "src": "4485:4:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3877, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4485:4:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4484:6:22"}, "scope": 4444, "src": "4388:162:22", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [4525], "body": {"id": 3913, "nodeType": "Block", "src": "4731:208:22", "statements": [{"expression": {"arguments": [{"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 3900, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "4820:10:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3901, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4820:12:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3902, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3894, "src": "4834:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3899, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4044, "src": "4801:18:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)"}}, "id": 3903, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4801:41:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564", "id": 3904, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4844:48:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b", "typeString": "literal_string \"ERC721: caller is not token owner nor approved\""}, "value": "ERC721: caller is not token owner nor approved"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b", "typeString": "literal_string \"ERC721: caller is not token owner nor approved\""}], "id": 3898, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "4793:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3905, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4793:100:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3906, "nodeType": "ExpressionStatement", "src": "4793:100:22"}, {"expression": {"arguments": [{"id": 3908, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3890, "src": "4914:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3909, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3892, "src": "4920:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3910, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3894, "src": "4924:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3907, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4289, "src": "4904:9:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4904:28:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3912, "nodeType": "ExpressionStatement", "src": "4904:28:22"}]}, "documentation": {"id": 3888, "nodeType": "StructuredDocumentation", "src": "4556:51:22", "text": " @dev See {IERC721-transferFrom}."}, "functionSelector": "23b872dd", "id": 3914, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "4621:12:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3896, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4722:8:22"}, "parameters": {"id": 3895, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3890, "mutability": "mutable", "name": "from", "nameLocation": "4651:4:22", "nodeType": "VariableDeclaration", "scope": 3914, "src": "4643:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3889, "name": "address", "nodeType": "ElementaryTypeName", "src": "4643:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3892, "mutability": "mutable", "name": "to", "nameLocation": "4673:2:22", "nodeType": "VariableDeclaration", "scope": 3914, "src": "4665:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3891, "name": "address", "nodeType": "ElementaryTypeName", "src": "4665:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3894, "mutability": "mutable", "name": "tokenId", "nameLocation": "4693:7:22", "nodeType": "VariableDeclaration", "scope": 3914, "src": "4685:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3893, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4685:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4633:73:22"}, "returnParameters": {"id": 3897, "nodeType": "ParameterList", "parameters": [], "src": "4731:0:22"}, "scope": 4444, "src": "4612:327:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [4515], "body": {"id": 3932, "nodeType": "Block", "src": "5128:56:22", "statements": [{"expression": {"arguments": [{"id": 3926, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3917, "src": "5155:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3927, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3919, "src": "5161:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3928, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3921, "src": "5165:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"hexValue": "", "id": 3929, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5174:2:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}], "id": 3925, "name": "safeTransferFrom", "nodeType": "Identifier", "overloadedDeclarations": [3933, 3963], "referencedDeclaration": 3963, "src": "5138:16:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)"}}, "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5138:39:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3931, "nodeType": "ExpressionStatement", "src": "5138:39:22"}]}, "documentation": {"id": 3915, "nodeType": "StructuredDocumentation", "src": "4945:55:22", "text": " @dev See {IERC721-safeTransferFrom}."}, "functionSelector": "42842e0e", "id": 3933, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "5014:16:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3923, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5119:8:22"}, "parameters": {"id": 3922, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3917, "mutability": "mutable", "name": "from", "nameLocation": "5048:4:22", "nodeType": "VariableDeclaration", "scope": 3933, "src": "5040:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3916, "name": "address", "nodeType": "ElementaryTypeName", "src": "5040:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3919, "mutability": "mutable", "name": "to", "nameLocation": "5070:2:22", "nodeType": "VariableDeclaration", "scope": 3933, "src": "5062:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3918, "name": "address", "nodeType": "ElementaryTypeName", "src": "5062:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3921, "mutability": "mutable", "name": "tokenId", "nameLocation": "5090:7:22", "nodeType": "VariableDeclaration", "scope": 3933, "src": "5082:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3920, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5082:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5030:73:22"}, "returnParameters": {"id": 3924, "nodeType": "ParameterList", "parameters": [], "src": "5128:0:22"}, "scope": 4444, "src": "5005:179:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"baseFunctions": [4505], "body": {"id": 3962, "nodeType": "Block", "src": "5400:165:22", "statements": [{"expression": {"arguments": [{"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 3948, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "5437:10:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 3949, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5437:12:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3950, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3940, "src": "5451:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3947, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4044, "src": "5418:18:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)"}}, "id": 3951, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5418:41:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564", "id": 3952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5461:48:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b", "typeString": "literal_string \"ERC721: caller is not token owner nor approved\""}, "value": "ERC721: caller is not token owner nor approved"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b", "typeString": "literal_string \"ERC721: caller is not token owner nor approved\""}], "id": 3946, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5410:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3953, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5410:100:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3954, "nodeType": "ExpressionStatement", "src": "5410:100:22"}, {"expression": {"arguments": [{"id": 3956, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3936, "src": "5534:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3957, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3938, "src": "5540:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3958, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3940, "src": "5544:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 3959, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3942, "src": "5553:4:22", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 3955, "name": "_safeTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3992, "src": "5520:13:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)"}}, "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5520:38:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3961, "nodeType": "ExpressionStatement", "src": "5520:38:22"}]}, "documentation": {"id": 3934, "nodeType": "StructuredDocumentation", "src": "5190:55:22", "text": " @dev See {IERC721-safeTransferFrom}."}, "functionSelector": "b88d4fde", "id": 3963, "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "5259:16:22", "nodeType": "FunctionDefinition", "overrides": {"id": 3944, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5391:8:22"}, "parameters": {"id": 3943, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3936, "mutability": "mutable", "name": "from", "nameLocation": "5293:4:22", "nodeType": "VariableDeclaration", "scope": 3963, "src": "5285:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3935, "name": "address", "nodeType": "ElementaryTypeName", "src": "5285:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3938, "mutability": "mutable", "name": "to", "nameLocation": "5315:2:22", "nodeType": "VariableDeclaration", "scope": 3963, "src": "5307:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3937, "name": "address", "nodeType": "ElementaryTypeName", "src": "5307:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3940, "mutability": "mutable", "name": "tokenId", "nameLocation": "5335:7:22", "nodeType": "VariableDeclaration", "scope": 3963, "src": "5327:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3939, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5327:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 3942, "mutability": "mutable", "name": "data", "nameLocation": "5365:4:22", "nodeType": "VariableDeclaration", "scope": 3963, "src": "5352:17:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 3941, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5352:5:22", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "5275:100:22"}, "returnParameters": {"id": 3945, "nodeType": "ParameterList", "parameters": [], "src": "5400:0:22"}, "scope": 4444, "src": "5250:315:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "public"}, {"body": {"id": 3991, "nodeType": "Block", "src": "6566:165:22", "statements": [{"expression": {"arguments": [{"id": 3976, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3966, "src": "6586:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3977, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3968, "src": "6592:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3978, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3970, "src": "6596:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 3975, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4289, "src": "6576:9:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 3979, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6576:28:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3980, "nodeType": "ExpressionStatement", "src": "6576:28:22"}, {"expression": {"arguments": [{"arguments": [{"id": 3983, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3966, "src": "6645:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3984, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3968, "src": "6651:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 3985, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3970, "src": "6655:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 3986, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3972, "src": "6664:4:22", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 3982, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4421, "src": "6622:22:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)"}}, "id": 3987, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6622:47:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", "id": 3988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6671:52:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}, "value": "ERC721: transfer to non ERC721Receiver implementer"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}], "id": 3981, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6614:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 3989, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6614:110:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 3990, "nodeType": "ExpressionStatement", "src": "6614:110:22"}]}, "documentation": {"id": 3964, "nodeType": "StructuredDocumentation", "src": "5571:850:22", "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."}, "id": 3992, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeTransfer", "nameLocation": "6435:13:22", "nodeType": "FunctionDefinition", "parameters": {"id": 3973, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3966, "mutability": "mutable", "name": "from", "nameLocation": "6466:4:22", "nodeType": "VariableDeclaration", "scope": 3992, "src": "6458:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3965, "name": "address", "nodeType": "ElementaryTypeName", "src": "6458:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3968, "mutability": "mutable", "name": "to", "nameLocation": "6488:2:22", "nodeType": "VariableDeclaration", "scope": 3992, "src": "6480:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 3967, "name": "address", "nodeType": "ElementaryTypeName", "src": "6480:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 3970, "mutability": "mutable", "name": "tokenId", "nameLocation": "6508:7:22", "nodeType": "VariableDeclaration", "scope": 3992, "src": "6500:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3969, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6500:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 3972, "mutability": "mutable", "name": "data", "nameLocation": "6538:4:22", "nodeType": "VariableDeclaration", "scope": 3992, "src": "6525:17:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 3971, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6525:5:22", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "6448:100:22"}, "returnParameters": {"id": 3974, "nodeType": "ParameterList", "parameters": [], "src": "6566:0:22"}, "scope": 4444, "src": "6426:305:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 4009, "nodeType": "Block", "src": "7105:54:22", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 4007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"baseExpression": {"id": 4000, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3609, "src": "7122:7:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 4002, "indexExpression": {"id": 4001, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "7130:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7122:16:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 4005, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7150:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4004, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7142:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4003, "name": "address", "nodeType": "ElementaryTypeName", "src": "7142:7:22", "typeDescriptions": {}}}, "id": 4006, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7142:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "7122:30:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 3999, "id": 4008, "nodeType": "Return", "src": "7115:37:22"}]}, "documentation": {"id": 3993, "nodeType": "StructuredDocumentation", "src": "6737:292:22", "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."}, "id": 4010, "implemented": true, "kind": "function", "modifiers": [], "name": "_exists", "nameLocation": "7043:7:22", "nodeType": "FunctionDefinition", "parameters": {"id": 3996, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3995, "mutability": "mutable", "name": "tokenId", "nameLocation": "7059:7:22", "nodeType": "VariableDeclaration", "scope": 4010, "src": "7051:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 3994, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7051:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "7050:17:22"}, "returnParameters": {"id": 3999, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 3998, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4010, "src": "7099:4:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 3997, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7099:4:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "7098:6:22"}, "scope": 4444, "src": "7034:125:22", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 4043, "nodeType": "Block", "src": "7416:162:22", "statements": [{"assignments": [4021], "declarations": [{"constant": false, "id": 4021, "mutability": "mutable", "name": "owner", "nameLocation": "7434:5:22", "nodeType": "VariableDeclaration", "scope": 4043, "src": "7426:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4020, "name": "address", "nodeType": "ElementaryTypeName", "src": "7426:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 4026, "initialValue": {"arguments": [{"id": 4024, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4015, "src": "7457:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 4022, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4444, "src": "7442:6:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721_$4444_$", "typeString": "type(contract ERC721)"}}, "id": 4023, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7449:7:22", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 3723, "src": "7442:14:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 4025, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7442:23:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "7426:39:22"}, {"expression": {"components": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 4040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 4034, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 4029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 4027, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4013, "src": "7483:7:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 4028, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4021, "src": "7494:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "7483:16:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"arguments": [{"id": 4031, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4021, "src": "7520:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4032, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4013, "src": "7527:7:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 4030, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3887, "src": "7503:16:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)"}}, "id": 4033, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7503:32:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "7483:52:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 4039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"id": 4036, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4015, "src": "7551:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4035, "name": "getApproved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3852, "src": "7539:11:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 4037, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7539:20:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 4038, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4013, "src": "7563:7:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "7539:31:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "7483:87:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 4041, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "7482:89:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 4019, "id": 4042, "nodeType": "Return", "src": "7475:96:22"}]}, "documentation": {"id": 4011, "nodeType": "StructuredDocumentation", "src": "7165:147:22", "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."}, "id": 4044, "implemented": true, "kind": "function", "modifiers": [], "name": "_isApprovedOrOwner", "nameLocation": "7326:18:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4016, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4013, "mutability": "mutable", "name": "spender", "nameLocation": "7353:7:22", "nodeType": "VariableDeclaration", "scope": 4044, "src": "7345:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4012, "name": "address", "nodeType": "ElementaryTypeName", "src": "7345:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4015, "mutability": "mutable", "name": "tokenId", "nameLocation": "7370:7:22", "nodeType": "VariableDeclaration", "scope": 4044, "src": "7362:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4014, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7362:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "7344:34:22"}, "returnParameters": {"id": 4019, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4018, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4044, "src": "7410:4:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4017, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7410:4:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "7409:6:22"}, "scope": 4444, "src": "7317:261:22", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 4058, "nodeType": "Block", "src": "7973:43:22", "statements": [{"expression": {"arguments": [{"id": 4053, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4047, "src": "7993:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4054, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4049, "src": "7997:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"hexValue": "", "id": 4055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8006:2:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}], "id": 4052, "name": "_safeMint", "nodeType": "Identifier", "overloadedDeclarations": [4059, 4088], "referencedDeclaration": 4088, "src": "7983:9:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes memory)"}}, "id": 4056, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7983:26:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4057, "nodeType": "ExpressionStatement", "src": "7983:26:22"}]}, "documentation": {"id": 4045, "nodeType": "StructuredDocumentation", "src": "7584:319:22", "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."}, "id": 4059, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeMint", "nameLocation": "7917:9:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4050, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4047, "mutability": "mutable", "name": "to", "nameLocation": "7935:2:22", "nodeType": "VariableDeclaration", "scope": 4059, "src": "7927:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4046, "name": "address", "nodeType": "ElementaryTypeName", "src": "7927:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4049, "mutability": "mutable", "name": "tokenId", "nameLocation": "7947:7:22", "nodeType": "VariableDeclaration", "scope": 4059, "src": "7939:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4048, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7939:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "7926:29:22"}, "returnParameters": {"id": 4051, "nodeType": "ParameterList", "parameters": [], "src": "7973:0:22"}, "scope": 4444, "src": "7908:108:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 4087, "nodeType": "Block", "src": "8351:195:22", "statements": [{"expression": {"arguments": [{"id": 4070, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4062, "src": "8367:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4071, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4064, "src": "8371:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4069, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4154, "src": "8361:5:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 4072, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8361:18:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4073, "nodeType": "ExpressionStatement", "src": "8361:18:22"}, {"expression": {"arguments": [{"arguments": [{"arguments": [{"hexValue": "30", "id": 4078, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8441:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4077, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8433:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4076, "name": "address", "nodeType": "ElementaryTypeName", "src": "8433:7:22", "typeDescriptions": {}}}, "id": 4079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8433:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4080, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4062, "src": "8445:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4081, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4064, "src": "8449:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 4082, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4066, "src": "8458:4:22", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 4075, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4421, "src": "8410:22:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)"}}, "id": 4083, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8410:53:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", "id": 4084, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8477:52:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}, "value": "ERC721: transfer to non ERC721Receiver implementer"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}], "id": 4074, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "8389:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4085, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8389:150:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4086, "nodeType": "ExpressionStatement", "src": "8389:150:22"}]}, "documentation": {"id": 4060, "nodeType": "StructuredDocumentation", "src": "8022:210:22", "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."}, "id": 4088, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeMint", "nameLocation": "8246:9:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4067, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4062, "mutability": "mutable", "name": "to", "nameLocation": "8273:2:22", "nodeType": "VariableDeclaration", "scope": 4088, "src": "8265:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4061, "name": "address", "nodeType": "ElementaryTypeName", "src": "8265:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4064, "mutability": "mutable", "name": "tokenId", "nameLocation": "8293:7:22", "nodeType": "VariableDeclaration", "scope": 4088, "src": "8285:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4063, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8285:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 4066, "mutability": "mutable", "name": "data", "nameLocation": "8323:4:22", "nodeType": "VariableDeclaration", "scope": 4088, "src": "8310:17:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4065, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8310:5:22", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "8255:78:22"}, "returnParameters": {"id": 4068, "nodeType": "ParameterList", "parameters": [], "src": "8351:0:22"}, "scope": 4444, "src": "8237:309:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 4153, "nodeType": "Block", "src": "8929:366:22", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 4102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 4097, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4091, "src": "8947:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 4100, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8961:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4099, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8953:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4098, "name": "address", "nodeType": "ElementaryTypeName", "src": "8953:7:22", "typeDescriptions": {}}}, "id": 4101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8953:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "8947:16:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", "id": 4103, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8965:34:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", "typeString": "literal_string \"ERC721: mint to the zero address\""}, "value": "ERC721: mint to the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", "typeString": "literal_string \"ERC721: mint to the zero address\""}], "id": 4096, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "8939:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4104, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8939:61:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4105, "nodeType": "ExpressionStatement", "src": "8939:61:22"}, {"expression": {"arguments": [{"id": 4110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "9018:17:22", "subExpression": {"arguments": [{"id": 4108, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4093, "src": "9027:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4107, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4010, "src": "9019:7:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)"}}, "id": 4109, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9019:16:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", "id": 4111, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9037:30:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", "typeString": "literal_string \"ERC721: token already minted\""}, "value": "ERC721: token already minted"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", "typeString": "literal_string \"ERC721: token already minted\""}], "id": 4106, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "9010:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4112, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9010:58:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4113, "nodeType": "ExpressionStatement", "src": "9010:58:22"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 4117, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9108:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4116, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9100:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4115, "name": "address", "nodeType": "ElementaryTypeName", "src": "9100:7:22", "typeDescriptions": {}}}, "id": 4118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9100:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4119, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4091, "src": "9112:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4120, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4093, "src": "9116:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4114, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4432, "src": "9079:20:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4121, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9079:45:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4122, "nodeType": "ExpressionStatement", "src": "9079:45:22"}, {"expression": {"id": 4127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 4123, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3613, "src": "9135:9:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 4125, "indexExpression": {"id": 4124, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4091, "src": "9145:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9135:13:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"hexValue": "31", "id": 4126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9152:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "9135:18:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 4128, "nodeType": "ExpressionStatement", "src": "9135:18:22"}, {"expression": {"id": 4133, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 4129, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3609, "src": "9163:7:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 4131, "indexExpression": {"id": 4130, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4093, "src": "9171:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9163:16:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 4132, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4091, "src": "9182:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "9163:21:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4134, "nodeType": "ExpressionStatement", "src": "9163:21:22"}, {"eventCall": {"arguments": [{"arguments": [{"hexValue": "30", "id": 4138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9217:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4137, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9209:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4136, "name": "address", "nodeType": "ElementaryTypeName", "src": "9209:7:22", "typeDescriptions": {}}}, "id": 4139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9209:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4140, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4091, "src": "9221:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4141, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4093, "src": "9225:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4135, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4459, "src": "9200:8:22", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4142, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9200:33:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4143, "nodeType": "EmitStatement", "src": "9195:38:22"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 4147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9272:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4146, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9264:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4145, "name": "address", "nodeType": "ElementaryTypeName", "src": "9264:7:22", "typeDescriptions": {}}}, "id": 4148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9264:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4149, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4091, "src": "9276:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4150, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4093, "src": "9280:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4144, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4443, "src": "9244:19:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4151, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9244:44:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4152, "nodeType": "ExpressionStatement", "src": "9244:44:22"}]}, "documentation": {"id": 4089, "nodeType": "StructuredDocumentation", "src": "8552:311:22", "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."}, "id": 4154, "implemented": true, "kind": "function", "modifiers": [], "name": "_mint", "nameLocation": "8877:5:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4094, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4091, "mutability": "mutable", "name": "to", "nameLocation": "8891:2:22", "nodeType": "VariableDeclaration", "scope": 4154, "src": "8883:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4090, "name": "address", "nodeType": "ElementaryTypeName", "src": "8883:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4093, "mutability": "mutable", "name": "tokenId", "nameLocation": "8903:7:22", "nodeType": "VariableDeclaration", "scope": 4154, "src": "8895:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4092, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8895:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "8882:29:22"}, "returnParameters": {"id": 4095, "nodeType": "ParameterList", "parameters": [], "src": "8929:0:22"}, "scope": 4444, "src": "8868:427:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 4213, "nodeType": "Block", "src": "9561:357:22", "statements": [{"assignments": [4161], "declarations": [{"constant": false, "id": 4161, "mutability": "mutable", "name": "owner", "nameLocation": "9579:5:22", "nodeType": "VariableDeclaration", "scope": 4213, "src": "9571:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4160, "name": "address", "nodeType": "ElementaryTypeName", "src": "9571:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 4166, "initialValue": {"arguments": [{"id": 4164, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4157, "src": "9602:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 4162, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4444, "src": "9587:6:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721_$4444_$", "typeString": "type(contract ERC721)"}}, "id": 4163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "9594:7:22", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 3723, "src": "9587:14:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 4165, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9587:23:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "9571:39:22"}, {"expression": {"arguments": [{"id": 4168, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4161, "src": "9642:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"hexValue": "30", "id": 4171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9657:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4170, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9649:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4169, "name": "address", "nodeType": "ElementaryTypeName", "src": "9649:7:22", "typeDescriptions": {}}}, "id": 4172, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9649:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4173, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4157, "src": "9661:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4167, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4432, "src": "9621:20:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4174, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9621:48:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4175, "nodeType": "ExpressionStatement", "src": "9621:48:22"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 4179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9724:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4178, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9716:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4177, "name": "address", "nodeType": "ElementaryTypeName", "src": "9716:7:22", "typeDescriptions": {}}}, "id": 4180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9716:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4181, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4157, "src": "9728:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4176, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4313, "src": "9707:8:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 4182, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9707:29:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4183, "nodeType": "ExpressionStatement", "src": "9707:29:22"}, {"expression": {"id": 4188, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 4184, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3613, "src": "9747:9:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 4186, "indexExpression": {"id": 4185, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4161, "src": "9757:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9747:16:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"hexValue": "31", "id": 4187, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9767:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "9747:21:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 4189, "nodeType": "ExpressionStatement", "src": "9747:21:22"}, {"expression": {"id": 4193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "9778:23:22", "subExpression": {"baseExpression": {"id": 4190, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3609, "src": "9785:7:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 4192, "indexExpression": {"id": 4191, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4157, "src": "9793:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9785:16:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4194, "nodeType": "ExpressionStatement", "src": "9778:23:22"}, {"eventCall": {"arguments": [{"id": 4196, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4161, "src": "9826:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"hexValue": "30", "id": 4199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9841:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4198, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9833:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4197, "name": "address", "nodeType": "ElementaryTypeName", "src": "9833:7:22", "typeDescriptions": {}}}, "id": 4200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9833:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4201, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4157, "src": "9845:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4195, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4459, "src": "9817:8:22", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4202, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9817:36:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4203, "nodeType": "EmitStatement", "src": "9812:41:22"}, {"expression": {"arguments": [{"id": 4205, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4161, "src": "9884:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"hexValue": "30", "id": 4208, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9899:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4207, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9891:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4206, "name": "address", "nodeType": "ElementaryTypeName", "src": "9891:7:22", "typeDescriptions": {}}}, "id": 4209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9891:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4210, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4157, "src": "9903:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4204, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4443, "src": "9864:19:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4211, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9864:47:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4212, "nodeType": "ExpressionStatement", "src": "9864:47:22"}]}, "documentation": {"id": 4155, "nodeType": "StructuredDocumentation", "src": "9301:206:22", "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."}, "id": 4214, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nameLocation": "9521:5:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4158, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4157, "mutability": "mutable", "name": "tokenId", "nameLocation": "9535:7:22", "nodeType": "VariableDeclaration", "scope": 4214, "src": "9527:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4156, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9527:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "9526:17:22"}, "returnParameters": {"id": 4159, "nodeType": "ParameterList", "parameters": [], "src": "9561:0:22"}, "scope": 4444, "src": "9512:406:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 4288, "nodeType": "Block", "src": "10351:496:22", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 4230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"id": 4227, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4221, "src": "10384:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 4225, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4444, "src": "10369:6:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721_$4444_$", "typeString": "type(contract ERC721)"}}, "id": 4226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10376:7:22", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 3723, "src": "10369:14:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 4228, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10369:23:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 4229, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4217, "src": "10396:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "10369:31:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572", "id": 4231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10402:39:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", "typeString": "literal_string \"ERC721: transfer from incorrect owner\""}, "value": "ERC721: transfer from incorrect owner"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", "typeString": "literal_string \"ERC721: transfer from incorrect owner\""}], "id": 4224, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "10361:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4232, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10361:81:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4233, "nodeType": "ExpressionStatement", "src": "10361:81:22"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 4240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 4235, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4219, "src": "10460:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 4238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10474:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4237, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10466:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4236, "name": "address", "nodeType": "ElementaryTypeName", "src": "10466:7:22", "typeDescriptions": {}}}, "id": 4239, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10466:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "10460:16:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", "id": 4241, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10478:38:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", "typeString": "literal_string \"ERC721: transfer to the zero address\""}, "value": "ERC721: transfer to the zero address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", "typeString": "literal_string \"ERC721: transfer to the zero address\""}], "id": 4234, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "10452:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4242, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10452:65:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4243, "nodeType": "ExpressionStatement", "src": "10452:65:22"}, {"expression": {"arguments": [{"id": 4245, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4217, "src": "10549:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4246, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4219, "src": "10555:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4247, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4221, "src": "10559:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4244, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4432, "src": "10528:20:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4248, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10528:39:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4249, "nodeType": "ExpressionStatement", "src": "10528:39:22"}, {"expression": {"arguments": [{"arguments": [{"hexValue": "30", "id": 4253, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10646:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 4252, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10638:7:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4251, "name": "address", "nodeType": "ElementaryTypeName", "src": "10638:7:22", "typeDescriptions": {}}}, "id": 4254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10638:10:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4255, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4221, "src": "10650:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4250, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4313, "src": "10629:8:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 4256, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10629:29:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4257, "nodeType": "ExpressionStatement", "src": "10629:29:22"}, {"expression": {"id": 4262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 4258, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3613, "src": "10669:9:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 4260, "indexExpression": {"id": 4259, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4217, "src": "10679:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10669:15:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"hexValue": "31", "id": 4261, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10688:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "10669:20:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 4263, "nodeType": "ExpressionStatement", "src": "10669:20:22"}, {"expression": {"id": 4268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 4264, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3613, "src": "10699:9:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)"}}, "id": 4266, "indexExpression": {"id": 4265, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4219, "src": "10709:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10699:13:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"hexValue": "31", "id": 4267, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10716:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "10699:18:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 4269, "nodeType": "ExpressionStatement", "src": "10699:18:22"}, {"expression": {"id": 4274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 4270, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3609, "src": "10727:7:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 4272, "indexExpression": {"id": 4271, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4221, "src": "10735:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10727:16:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 4273, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4219, "src": "10746:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "10727:21:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4275, "nodeType": "ExpressionStatement", "src": "10727:21:22"}, {"eventCall": {"arguments": [{"id": 4277, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4217, "src": "10773:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4278, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4219, "src": "10779:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4279, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4221, "src": "10783:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4276, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4459, "src": "10764:8:22", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4280, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10764:27:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4281, "nodeType": "EmitStatement", "src": "10759:32:22"}, {"expression": {"arguments": [{"id": 4283, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4217, "src": "10822:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4284, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4219, "src": "10828:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4285, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4221, "src": "10832:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4282, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4443, "src": "10802:19:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4286, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10802:38:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4287, "nodeType": "ExpressionStatement", "src": "10802:38:22"}]}, "documentation": {"id": 4215, "nodeType": "StructuredDocumentation", "src": "9924:313:22", "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."}, "id": 4289, "implemented": true, "kind": "function", "modifiers": [], "name": "_transfer", "nameLocation": "10251:9:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4222, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4217, "mutability": "mutable", "name": "from", "nameLocation": "10278:4:22", "nodeType": "VariableDeclaration", "scope": 4289, "src": "10270:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4216, "name": "address", "nodeType": "ElementaryTypeName", "src": "10270:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4219, "mutability": "mutable", "name": "to", "nameLocation": "10300:2:22", "nodeType": "VariableDeclaration", "scope": 4289, "src": "10292:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4218, "name": "address", "nodeType": "ElementaryTypeName", "src": "10292:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4221, "mutability": "mutable", "name": "tokenId", "nameLocation": "10320:7:22", "nodeType": "VariableDeclaration", "scope": 4289, "src": "10312:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4220, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10312:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "10260:73:22"}, "returnParameters": {"id": 4223, "nodeType": "ParameterList", "parameters": [], "src": "10351:0:22"}, "scope": 4444, "src": "10242:605:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 4312, "nodeType": "Block", "src": "11023:107:22", "statements": [{"expression": {"id": 4301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 4297, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3617, "src": "11033:15:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)"}}, "id": 4299, "indexExpression": {"id": 4298, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294, "src": "11049:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11033:24:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 4300, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4292, "src": "11060:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "11033:29:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4302, "nodeType": "ExpressionStatement", "src": "11033:29:22"}, {"eventCall": {"arguments": [{"arguments": [{"id": 4306, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294, "src": "11101:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 4304, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4444, "src": "11086:6:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_ERC721_$4444_$", "typeString": "type(contract ERC721)"}}, "id": 4305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "11093:7:22", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 3723, "src": "11086:14:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)"}}, "id": 4307, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11086:23:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4308, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4292, "src": "11111:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4309, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294, "src": "11115:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4303, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4468, "src": "11077:8:22", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)"}}, "id": 4310, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11077:46:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4311, "nodeType": "EmitStatement", "src": "11072:51:22"}]}, "documentation": {"id": 4290, "nodeType": "StructuredDocumentation", "src": "10853:101:22", "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."}, "id": 4313, "implemented": true, "kind": "function", "modifiers": [], "name": "_approve", "nameLocation": "10968:8:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4295, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4292, "mutability": "mutable", "name": "to", "nameLocation": "10985:2:22", "nodeType": "VariableDeclaration", "scope": 4313, "src": "10977:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4291, "name": "address", "nodeType": "ElementaryTypeName", "src": "10977:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4294, "mutability": "mutable", "name": "tokenId", "nameLocation": "10997:7:22", "nodeType": "VariableDeclaration", "scope": 4313, "src": "10989:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4293, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10989:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "10976:29:22"}, "returnParameters": {"id": 4296, "nodeType": "ParameterList", "parameters": [], "src": "11023:0:22"}, "scope": 4444, "src": "10959:171:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 4344, "nodeType": "Block", "src": "11389:184:22", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 4326, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 4324, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4316, "src": "11407:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"id": 4325, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4318, "src": "11416:8:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "11407:17:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", "id": 4327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11426:27:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", "typeString": "literal_string \"ERC721: approve to caller\""}, "value": "ERC721: approve to caller"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", "typeString": "literal_string \"ERC721: approve to caller\""}], "id": 4323, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "11399:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4328, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11399:55:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4329, "nodeType": "ExpressionStatement", "src": "11399:55:22"}, {"expression": {"id": 4336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"baseExpression": {"id": 4330, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3623, "src": "11464:18:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))"}}, "id": 4333, "indexExpression": {"id": 4331, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4316, "src": "11483:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11464:25:22", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}}, "id": 4334, "indexExpression": {"id": 4332, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4318, "src": "11490:8:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11464:35:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 4335, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4320, "src": "11502:8:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "11464:46:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 4337, "nodeType": "ExpressionStatement", "src": "11464:46:22"}, {"eventCall": {"arguments": [{"id": 4339, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4316, "src": "11540:5:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4340, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4318, "src": "11547:8:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4341, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4320, "src": "11557:8:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 4338, "name": "ApprovalForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4477, "src": "11525:14:22", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)"}}, "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11525:41:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4343, "nodeType": "EmitStatement", "src": "11520:46:22"}]}, "documentation": {"id": 4314, "nodeType": "StructuredDocumentation", "src": "11136:125:22", "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."}, "id": 4345, "implemented": true, "kind": "function", "modifiers": [], "name": "_setApprovalForAll", "nameLocation": "11275:18:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4321, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4316, "mutability": "mutable", "name": "owner", "nameLocation": "11311:5:22", "nodeType": "VariableDeclaration", "scope": 4345, "src": "11303:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4315, "name": "address", "nodeType": "ElementaryTypeName", "src": "11303:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4318, "mutability": "mutable", "name": "operator", "nameLocation": "11334:8:22", "nodeType": "VariableDeclaration", "scope": 4345, "src": "11326:16:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4317, "name": "address", "nodeType": "ElementaryTypeName", "src": "11326:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4320, "mutability": "mutable", "name": "approved", "nameLocation": "11357:8:22", "nodeType": "VariableDeclaration", "scope": 4345, "src": "11352:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4319, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11352:4:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "11293:78:22"}, "returnParameters": {"id": 4322, "nodeType": "ParameterList", "parameters": [], "src": "11389:0:22"}, "scope": 4444, "src": "11266:307:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 4358, "nodeType": "Block", "src": "11720:70:22", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 4353, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4348, "src": "11746:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4352, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4010, "src": "11738:7:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)"}}, "id": 4354, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11738:16:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4552433732313a20696e76616c696420746f6b656e204944", "id": 4355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11756:26:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\""}, "value": "ERC721: invalid token ID"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\""}], "id": 4351, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "11730:7:22", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4356, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11730:53:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4357, "nodeType": "ExpressionStatement", "src": "11730:53:22"}]}, "documentation": {"id": 4346, "nodeType": "StructuredDocumentation", "src": "11579:73:22", "text": " @dev Reverts if the `tokenId` has not been minted yet."}, "id": 4359, "implemented": true, "kind": "function", "modifiers": [], "name": "_requireMinted", "nameLocation": "11666:14:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4349, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4348, "mutability": "mutable", "name": "tokenId", "nameLocation": "11689:7:22", "nodeType": "VariableDeclaration", "scope": 4359, "src": "11681:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4347, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11681:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "11680:17:22"}, "returnParameters": {"id": 4350, "nodeType": "ParameterList", "parameters": [], "src": "11720:0:22"}, "scope": 4444, "src": "11657:133:22", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 4420, "nodeType": "Block", "src": "12497:676:22", "statements": [{"condition": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 4373, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4364, "src": "12511:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4374, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12514:10:22", "memberName": "isContract", "nodeType": "MemberAccess", "referencedDeclaration": 4748, "src": "12511:13:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", "typeString": "function (address) view returns (bool)"}}, "id": 4375, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12511:15:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 4418, "nodeType": "Block", "src": "13131:36:22", "statements": [{"expression": {"hexValue": "74727565", "id": 4416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "13152:4:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "functionReturnParameters": 4372, "id": 4417, "nodeType": "Return", "src": "13145:11:22"}]}, "id": 4419, "nodeType": "IfStatement", "src": "12507:660:22", "trueBody": {"id": 4415, "nodeType": "Block", "src": "12528:597:22", "statements": [{"clauses": [{"block": {"id": 4395, "nodeType": "Block", "src": "12642:91:22", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "id": 4393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 4389, "name": "retval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4387, "src": "12667:6:22", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"expression": {"id": 4390, "name": "IERC721Receiver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4578, "src": "12677:15:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$4578_$", "typeString": "type(contract IERC721Receiver)"}}, "id": 4391, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "12693:16:22", "memberName": "onERC721Received", "nodeType": "MemberAccess", "referencedDeclaration": 4577, "src": "12677:32:22", "typeDescriptions": {"typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", "typeString": "function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}}, "id": 4392, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "12710:8:22", "memberName": "selector", "nodeType": "MemberAccess", "src": "12677:41:22", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "src": "12667:51:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 4372, "id": 4394, "nodeType": "Return", "src": "12660:58:22"}]}, "errorName": "", "id": 4396, "nodeType": "TryCatchClause", "parameters": {"id": 4388, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4387, "mutability": "mutable", "name": "retval", "nameLocation": "12634:6:22", "nodeType": "VariableDeclaration", "scope": 4396, "src": "12627:13:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 4386, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "12627:6:22", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "12626:15:22"}, "src": "12618:115:22"}, {"block": {"id": 4412, "nodeType": "Block", "src": "12762:353:22", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 4403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 4400, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4398, "src": "12784:6:22", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 4401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12791:6:22", "memberName": "length", "nodeType": "MemberAccess", "src": "12784:13:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 4402, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12801:1:22", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "12784:18:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 4410, "nodeType": "Block", "src": "12911:190:22", "statements": [{"AST": {"nodeType": "YulBlock", "src": "12997:86:22", "statements": [{"expression": {"arguments": [{"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "13034:2:22", "type": "", "value": "32"}, {"name": "reason", "nodeType": "YulIdentifier", "src": "13038:6:22"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "13030:3:22"}, "nodeType": "YulFunctionCall", "src": "13030:15:22"}, {"arguments": [{"name": "reason", "nodeType": "YulIdentifier", "src": "13053:6:22"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "13047:5:22"}, "nodeType": "YulFunctionCall", "src": "13047:13:22"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "13023:6:22"}, "nodeType": "YulFunctionCall", "src": "13023:38:22"}, "nodeType": "YulExpressionStatement", "src": "13023:38:22"}]}, "documentation": "@solidity memory-safe-assembly", "evmVersion": "london", "externalReferences": [{"declaration": 4398, "isOffset": false, "isSlot": false, "src": "13038:6:22", "valueSize": 1}, {"declaration": 4398, "isOffset": false, "isSlot": false, "src": "13053:6:22", "valueSize": 1}], "id": 4409, "nodeType": "InlineAssembly", "src": "12988:95:22"}]}, "id": 4411, "nodeType": "IfStatement", "src": "12780:321:22", "trueBody": {"id": 4408, "nodeType": "Block", "src": "12804:101:22", "statements": [{"expression": {"arguments": [{"hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", "id": 4405, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12833:52:22", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}, "value": "ERC721: transfer to non ERC721Receiver implementer"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}], "id": 4404, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [-19, -19], "referencedDeclaration": -19, "src": "12826:6:22", "typeDescriptions": {"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure"}}, "id": 4406, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12826:60:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4407, "nodeType": "ExpressionStatement", "src": "12826:60:22"}]}}]}, "errorName": "", "id": 4413, "nodeType": "TryCatchClause", "parameters": {"id": 4399, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4398, "mutability": "mutable", "name": "reason", "nameLocation": "12754:6:22", "nodeType": "VariableDeclaration", "scope": 4413, "src": "12741:19:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4397, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12741:5:22", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "12740:21:22"}, "src": "12734:381:22"}], "externalCall": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 4380, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "12583:10:22", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 4381, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12583:12:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4382, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4362, "src": "12597:4:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4383, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4366, "src": "12603:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 4384, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4368, "src": "12612:4:22", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"arguments": [{"id": 4377, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4364, "src": "12562:2:22", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 4376, "name": "IERC721Receiver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4578, "src": "12546:15:22", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$4578_$", "typeString": "type(contract IERC721Receiver)"}}, "id": 4378, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12546:19:22", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC721Receiver_$4578", "typeString": "contract IERC721Receiver"}}, "id": 4379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12566:16:22", "memberName": "onERC721Received", "nodeType": "MemberAccess", "referencedDeclaration": 4577, "src": "12546:36:22", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)"}}, "id": 4385, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12546:71:22", "tryCall": true, "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "id": 4414, "nodeType": "TryStatement", "src": "12542:573:22"}]}}]}, "documentation": {"id": 4360, "nodeType": "StructuredDocumentation", "src": "11796:541:22", "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"}, "id": 4421, "implemented": true, "kind": "function", "modifiers": [], "name": "_checkOnERC721Received", "nameLocation": "12351:22:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4369, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4362, "mutability": "mutable", "name": "from", "nameLocation": "12391:4:22", "nodeType": "VariableDeclaration", "scope": 4421, "src": "12383:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4361, "name": "address", "nodeType": "ElementaryTypeName", "src": "12383:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4364, "mutability": "mutable", "name": "to", "nameLocation": "12413:2:22", "nodeType": "VariableDeclaration", "scope": 4421, "src": "12405:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4363, "name": "address", "nodeType": "ElementaryTypeName", "src": "12405:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4366, "mutability": "mutable", "name": "tokenId", "nameLocation": "12433:7:22", "nodeType": "VariableDeclaration", "scope": 4421, "src": "12425:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4365, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12425:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 4368, "mutability": "mutable", "name": "data", "nameLocation": "12463:4:22", "nodeType": "VariableDeclaration", "scope": 4421, "src": "12450:17:22", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4367, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "12450:5:22", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "12373:100:22"}, "returnParameters": {"id": 4372, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4371, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4421, "src": "12491:4:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4370, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12491:4:22", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "12490:6:22"}, "scope": 4444, "src": "12342:831:22", "stateMutability": "nonpayable", "virtual": false, "visibility": "private"}, {"body": {"id": 4431, "nodeType": "Block", "src": "13849:2:22", "statements": []}, "documentation": {"id": 4422, "nodeType": "StructuredDocumentation", "src": "13179:545:22", "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."}, "id": 4432, "implemented": true, "kind": "function", "modifiers": [], "name": "_beforeTokenTransfer", "nameLocation": "13738:20:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4429, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4424, "mutability": "mutable", "name": "from", "nameLocation": "13776:4:22", "nodeType": "VariableDeclaration", "scope": 4432, "src": "13768:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4423, "name": "address", "nodeType": "ElementaryTypeName", "src": "13768:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4426, "mutability": "mutable", "name": "to", "nameLocation": "13798:2:22", "nodeType": "VariableDeclaration", "scope": 4432, "src": "13790:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4425, "name": "address", "nodeType": "ElementaryTypeName", "src": "13790:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4428, "mutability": "mutable", "name": "tokenId", "nameLocation": "13818:7:22", "nodeType": "VariableDeclaration", "scope": 4432, "src": "13810:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4427, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13810:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "13758:73:22"}, "returnParameters": {"id": 4430, "nodeType": "ParameterList", "parameters": [], "src": "13849:0:22"}, "scope": 4444, "src": "13729:122:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"body": {"id": 4442, "nodeType": "Block", "src": "14342:2:22", "statements": []}, "documentation": {"id": 4433, "nodeType": "StructuredDocumentation", "src": "13857:361:22", "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."}, "id": 4443, "implemented": true, "kind": "function", "modifiers": [], "name": "_afterTokenTransfer", "nameLocation": "14232:19:22", "nodeType": "FunctionDefinition", "parameters": {"id": 4440, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4435, "mutability": "mutable", "name": "from", "nameLocation": "14269:4:22", "nodeType": "VariableDeclaration", "scope": 4443, "src": "14261:12:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4434, "name": "address", "nodeType": "ElementaryTypeName", "src": "14261:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4437, "mutability": "mutable", "name": "to", "nameLocation": "14291:2:22", "nodeType": "VariableDeclaration", "scope": 4443, "src": "14283:10:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4436, "name": "address", "nodeType": "ElementaryTypeName", "src": "14283:7:22", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4439, "mutability": "mutable", "name": "tokenId", "nameLocation": "14311:7:22", "nodeType": "VariableDeclaration", "scope": 4443, "src": "14303:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4438, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14303:7:22", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "14251:73:22"}, "returnParameters": {"id": 4441, "nodeType": "ParameterList", "parameters": [], "src": "14342:0:22"}, "scope": 4444, "src": "14223:121:22", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}], "scope": 4445, "src": "628:13718:22", "usedErrors": []}], "src": "107:14240:22"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "exportedSymbols": {"IERC165": [5309], "IERC721": [4560]}, "id": 4561, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 4446, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "108:23:23"}, {"absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", "file": "../../utils/introspection/IERC165.sol", "id": 4447, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4561, "sourceUnit": 5310, "src": "133:47:23", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 4449, "name": "IERC165", "nameLocations": ["271:7:23"], "nodeType": "IdentifierPath", "referencedDeclaration": 5309, "src": "271:7:23"}, "id": 4450, "nodeType": "InheritanceSpecifier", "src": "271:7:23"}], "canonicalName": "IERC721", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 4448, "nodeType": "StructuredDocumentation", "src": "182:67:23", "text": " @dev Required interface of an ERC721 compliant contract."}, "fullyImplemented": false, "id": 4560, "linearizedBaseContracts": [4560, 5309], "name": "IERC721", "nameLocation": "260:7:23", "nodeType": "ContractDefinition", "nodes": [{"anonymous": false, "documentation": {"id": 4451, "nodeType": "StructuredDocumentation", "src": "285:88:23", "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`."}, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "id": 4459, "name": "Transfer", "nameLocation": "384:8:23", "nodeType": "EventDefinition", "parameters": {"id": 4458, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4453, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "409:4:23", "nodeType": "VariableDeclaration", "scope": 4459, "src": "393:20:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4452, "name": "address", "nodeType": "ElementaryTypeName", "src": "393:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4455, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "431:2:23", "nodeType": "VariableDeclaration", "scope": 4459, "src": "415:18:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4454, "name": "address", "nodeType": "ElementaryTypeName", "src": "415:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4457, "indexed": true, "mutability": "mutable", "name": "tokenId", "nameLocation": "451:7:23", "nodeType": "VariableDeclaration", "scope": 4459, "src": "435:23:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4456, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "435:7:23", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "392:67:23"}, "src": "378:82:23"}, {"anonymous": false, "documentation": {"id": 4460, "nodeType": "StructuredDocumentation", "src": "466:94:23", "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."}, "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", "id": 4468, "name": "Approval", "nameLocation": "571:8:23", "nodeType": "EventDefinition", "parameters": {"id": 4467, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4462, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "596:5:23", "nodeType": "VariableDeclaration", "scope": 4468, "src": "580:21:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4461, "name": "address", "nodeType": "ElementaryTypeName", "src": "580:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4464, "indexed": true, "mutability": "mutable", "name": "approved", "nameLocation": "619:8:23", "nodeType": "VariableDeclaration", "scope": 4468, "src": "603:24:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4463, "name": "address", "nodeType": "ElementaryTypeName", "src": "603:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4466, "indexed": true, "mutability": "mutable", "name": "tokenId", "nameLocation": "645:7:23", "nodeType": "VariableDeclaration", "scope": 4468, "src": "629:23:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4465, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "629:7:23", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "579:74:23"}, "src": "565:89:23"}, {"anonymous": false, "documentation": {"id": 4469, "nodeType": "StructuredDocumentation", "src": "660:117:23", "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."}, "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", "id": 4477, "name": "ApprovalForAll", "nameLocation": "788:14:23", "nodeType": "EventDefinition", "parameters": {"id": 4476, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4471, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "819:5:23", "nodeType": "VariableDeclaration", "scope": 4477, "src": "803:21:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4470, "name": "address", "nodeType": "ElementaryTypeName", "src": "803:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4473, "indexed": true, "mutability": "mutable", "name": "operator", "nameLocation": "842:8:23", "nodeType": "VariableDeclaration", "scope": 4477, "src": "826:24:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4472, "name": "address", "nodeType": "ElementaryTypeName", "src": "826:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4475, "indexed": false, "mutability": "mutable", "name": "approved", "nameLocation": "857:8:23", "nodeType": "VariableDeclaration", "scope": 4477, "src": "852:13:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4474, "name": "bool", "nodeType": "ElementaryTypeName", "src": "852:4:23", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "802:64:23"}, "src": "782:85:23"}, {"documentation": {"id": 4478, "nodeType": "StructuredDocumentation", "src": "873:76:23", "text": " @dev Returns the number of tokens in ``owner``'s account."}, "functionSelector": "70a08231", "id": 4485, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "963:9:23", "nodeType": "FunctionDefinition", "parameters": {"id": 4481, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4480, "mutability": "mutable", "name": "owner", "nameLocation": "981:5:23", "nodeType": "VariableDeclaration", "scope": 4485, "src": "973:13:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4479, "name": "address", "nodeType": "ElementaryTypeName", "src": "973:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "972:15:23"}, "returnParameters": {"id": 4484, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4483, "mutability": "mutable", "name": "balance", "nameLocation": "1019:7:23", "nodeType": "VariableDeclaration", "scope": 4485, "src": "1011:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4482, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1011:7:23", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1010:17:23"}, "scope": 4560, "src": "954:74:23", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4486, "nodeType": "StructuredDocumentation", "src": "1034:131:23", "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."}, "functionSelector": "6352211e", "id": 4493, "implemented": false, "kind": "function", "modifiers": [], "name": "ownerOf", "nameLocation": "1179:7:23", "nodeType": "FunctionDefinition", "parameters": {"id": 4489, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4488, "mutability": "mutable", "name": "tokenId", "nameLocation": "1195:7:23", "nodeType": "VariableDeclaration", "scope": 4493, "src": "1187:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4487, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1187:7:23", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1186:17:23"}, "returnParameters": {"id": 4492, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4491, "mutability": "mutable", "name": "owner", "nameLocation": "1235:5:23", "nodeType": "VariableDeclaration", "scope": 4493, "src": "1227:13:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4490, "name": "address", "nodeType": "ElementaryTypeName", "src": "1227:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1226:15:23"}, "scope": 4560, "src": "1170:72:23", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4494, "nodeType": "StructuredDocumentation", "src": "1248:556:23", "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."}, "functionSelector": "b88d4fde", "id": 4505, "implemented": false, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "1818:16:23", "nodeType": "FunctionDefinition", "parameters": {"id": 4503, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4496, "mutability": "mutable", "name": "from", "nameLocation": "1852:4:23", "nodeType": "VariableDeclaration", "scope": 4505, "src": "1844:12:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4495, "name": "address", "nodeType": "ElementaryTypeName", "src": "1844:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4498, "mutability": "mutable", "name": "to", "nameLocation": "1874:2:23", "nodeType": "VariableDeclaration", "scope": 4505, "src": "1866:10:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4497, "name": "address", "nodeType": "ElementaryTypeName", "src": "1866:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4500, "mutability": "mutable", "name": "tokenId", "nameLocation": "1894:7:23", "nodeType": "VariableDeclaration", "scope": 4505, "src": "1886:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4499, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1886:7:23", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 4502, "mutability": "mutable", "name": "data", "nameLocation": "1926:4:23", "nodeType": "VariableDeclaration", "scope": 4505, "src": "1911:19:23", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": {"typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes"}, "typeName": {"id": 4501, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1911:5:23", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "1834:102:23"}, "returnParameters": {"id": 4504, "nodeType": "ParameterList", "parameters": [], "src": "1945:0:23"}, "scope": 4560, "src": "1809:137:23", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4506, "nodeType": "StructuredDocumentation", "src": "1952:687:23", "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."}, "functionSelector": "42842e0e", "id": 4515, "implemented": false, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "2653:16:23", "nodeType": "FunctionDefinition", "parameters": {"id": 4513, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4508, "mutability": "mutable", "name": "from", "nameLocation": "2687:4:23", "nodeType": "VariableDeclaration", "scope": 4515, "src": "2679:12:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4507, "name": "address", "nodeType": "ElementaryTypeName", "src": "2679:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4510, "mutability": "mutable", "name": "to", "nameLocation": "2709:2:23", "nodeType": "VariableDeclaration", "scope": 4515, "src": "2701:10:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4509, "name": "address", "nodeType": "ElementaryTypeName", "src": "2701:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4512, "mutability": "mutable", "name": "tokenId", "nameLocation": "2729:7:23", "nodeType": "VariableDeclaration", "scope": 4515, "src": "2721:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4511, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2721:7:23", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2669:73:23"}, "returnParameters": {"id": 4514, "nodeType": "ParameterList", "parameters": [], "src": "2751:0:23"}, "scope": 4560, "src": "2644:108:23", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4516, "nodeType": "StructuredDocumentation", "src": "2758:504:23", "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."}, "functionSelector": "23b872dd", "id": 4525, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "3276:12:23", "nodeType": "FunctionDefinition", "parameters": {"id": 4523, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4518, "mutability": "mutable", "name": "from", "nameLocation": "3306:4:23", "nodeType": "VariableDeclaration", "scope": 4525, "src": "3298:12:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4517, "name": "address", "nodeType": "ElementaryTypeName", "src": "3298:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4520, "mutability": "mutable", "name": "to", "nameLocation": "3328:2:23", "nodeType": "VariableDeclaration", "scope": 4525, "src": "3320:10:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4519, "name": "address", "nodeType": "ElementaryTypeName", "src": "3320:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4522, "mutability": "mutable", "name": "tokenId", "nameLocation": "3348:7:23", "nodeType": "VariableDeclaration", "scope": 4525, "src": "3340:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4521, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3340:7:23", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3288:73:23"}, "returnParameters": {"id": 4524, "nodeType": "ParameterList", "parameters": [], "src": "3370:0:23"}, "scope": 4560, "src": "3267:104:23", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4526, "nodeType": "StructuredDocumentation", "src": "3377:452:23", "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."}, "functionSelector": "095ea7b3", "id": 4533, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "3843:7:23", "nodeType": "FunctionDefinition", "parameters": {"id": 4531, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4528, "mutability": "mutable", "name": "to", "nameLocation": "3859:2:23", "nodeType": "VariableDeclaration", "scope": 4533, "src": "3851:10:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4527, "name": "address", "nodeType": "ElementaryTypeName", "src": "3851:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4530, "mutability": "mutable", "name": "tokenId", "nameLocation": "3871:7:23", "nodeType": "VariableDeclaration", "scope": 4533, "src": "3863:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4529, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3863:7:23", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3850:29:23"}, "returnParameters": {"id": 4532, "nodeType": "ParameterList", "parameters": [], "src": "3888:0:23"}, "scope": 4560, "src": "3834:55:23", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4534, "nodeType": "StructuredDocumentation", "src": "3895:309:23", "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."}, "functionSelector": "a22cb465", "id": 4541, "implemented": false, "kind": "function", "modifiers": [], "name": "setApprovalForAll", "nameLocation": "4218:17:23", "nodeType": "FunctionDefinition", "parameters": {"id": 4539, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4536, "mutability": "mutable", "name": "operator", "nameLocation": "4244:8:23", "nodeType": "VariableDeclaration", "scope": 4541, "src": "4236:16:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4535, "name": "address", "nodeType": "ElementaryTypeName", "src": "4236:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4538, "mutability": "mutable", "name": "_approved", "nameLocation": "4259:9:23", "nodeType": "VariableDeclaration", "scope": 4541, "src": "4254:14:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4537, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4254:4:23", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4235:34:23"}, "returnParameters": {"id": 4540, "nodeType": "ParameterList", "parameters": [], "src": "4278:0:23"}, "scope": 4560, "src": "4209:70:23", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4542, "nodeType": "StructuredDocumentation", "src": "4285:139:23", "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."}, "functionSelector": "081812fc", "id": 4549, "implemented": false, "kind": "function", "modifiers": [], "name": "getApproved", "nameLocation": "4438:11:23", "nodeType": "FunctionDefinition", "parameters": {"id": 4545, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4544, "mutability": "mutable", "name": "tokenId", "nameLocation": "4458:7:23", "nodeType": "VariableDeclaration", "scope": 4549, "src": "4450:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4543, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4450:7:23", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4449:17:23"}, "returnParameters": {"id": 4548, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4547, "mutability": "mutable", "name": "operator", "nameLocation": "4498:8:23", "nodeType": "VariableDeclaration", "scope": 4549, "src": "4490:16:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4546, "name": "address", "nodeType": "ElementaryTypeName", "src": "4490:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "4489:18:23"}, "scope": 4560, "src": "4429:79:23", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4550, "nodeType": "StructuredDocumentation", "src": "4514:138:23", "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"}, "functionSelector": "e985e9c5", "id": 4559, "implemented": false, "kind": "function", "modifiers": [], "name": "isApprovedForAll", "nameLocation": "4666:16:23", "nodeType": "FunctionDefinition", "parameters": {"id": 4555, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4552, "mutability": "mutable", "name": "owner", "nameLocation": "4691:5:23", "nodeType": "VariableDeclaration", "scope": 4559, "src": "4683:13:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4551, "name": "address", "nodeType": "ElementaryTypeName", "src": "4683:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4554, "mutability": "mutable", "name": "operator", "nameLocation": "4706:8:23", "nodeType": "VariableDeclaration", "scope": 4559, "src": "4698:16:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4553, "name": "address", "nodeType": "ElementaryTypeName", "src": "4698:7:23", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "4682:33:23"}, "returnParameters": {"id": 4558, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4557, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4559, "src": "4739:4:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4556, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4739:4:23", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "4738:6:23"}, "scope": 4560, "src": "4657:88:23", "stateMutability": "view", "virtual": false, "visibility": "external"}], "scope": 4561, "src": "250:4497:23", "usedErrors": []}], "src": "108:4640:23"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "exportedSymbols": {"IERC721Receiver": [4578]}, "id": 4579, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 4562, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "116:23:24"}, {"abstract": false, "baseContracts": [], "canonicalName": "IERC721Receiver", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 4563, "nodeType": "StructuredDocumentation", "src": "141:152:24", "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."}, "fullyImplemented": false, "id": 4578, "linearizedBaseContracts": [4578], "name": "IERC721Receiver", "nameLocation": "304:15:24", "nodeType": "ContractDefinition", "nodes": [{"documentation": {"id": 4564, "nodeType": "StructuredDocumentation", "src": "326:493:24", "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}, "functionSelector": "150b7a02", "id": 4577, "implemented": false, "kind": "function", "modifiers": [], "name": "onERC721Received", "nameLocation": "833:16:24", "nodeType": "FunctionDefinition", "parameters": {"id": 4573, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4566, "mutability": "mutable", "name": "operator", "nameLocation": "867:8:24", "nodeType": "VariableDeclaration", "scope": 4577, "src": "859:16:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4565, "name": "address", "nodeType": "ElementaryTypeName", "src": "859:7:24", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4568, "mutability": "mutable", "name": "from", "nameLocation": "893:4:24", "nodeType": "VariableDeclaration", "scope": 4577, "src": "885:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4567, "name": "address", "nodeType": "ElementaryTypeName", "src": "885:7:24", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4570, "mutability": "mutable", "name": "tokenId", "nameLocation": "915:7:24", "nodeType": "VariableDeclaration", "scope": 4577, "src": "907:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4569, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "907:7:24", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 4572, "mutability": "mutable", "name": "data", "nameLocation": "947:4:24", "nodeType": "VariableDeclaration", "scope": 4577, "src": "932:19:24", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": {"typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes"}, "typeName": {"id": 4571, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "932:5:24", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "849:108:24"}, "returnParameters": {"id": 4576, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4575, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4577, "src": "976:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 4574, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "976:6:24", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "975:8:24"}, "scope": 4578, "src": "824:160:24", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 4579, "src": "294:692:24", "usedErrors": []}], "src": "116:871:24"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", "exportedSymbols": {"Address": [5025], "Context": [5047], "ERC165": [5297], "ERC721": [4444], "ERC721URIStorage": [4703], "IERC165": [5309], "IERC721": [4560], "IERC721Metadata": [4730], "IERC721Receiver": [4578], "Strings": [5273]}, "id": 4704, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 4580, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "128:23:25"}, {"absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", "file": "../ERC721.sol", "id": 4581, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4704, "sourceUnit": 4445, "src": "153:23:25", "symbolAliases": [], "unitAlias": ""}, {"abstract": true, "baseContracts": [{"baseName": {"id": 4583, "name": "ERC721", "nameLocations": ["286:6:25"], "nodeType": "IdentifierPath", "referencedDeclaration": 4444, "src": "286:6:25"}, "id": 4584, "nodeType": "InheritanceSpecifier", "src": "286:6:25"}], "canonicalName": "ERC721URIStorage", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 4582, "nodeType": "StructuredDocumentation", "src": "178:69:25", "text": " @dev ERC721 token with storage based token URI management."}, "fullyImplemented": false, "id": 4703, "linearizedBaseContracts": [4703, 4444, 4730, 4560, 5297, 5309, 5047], "name": "ERC721URIStorage", "nameLocation": "266:16:25", "nodeType": "ContractDefinition", "nodes": [{"global": false, "id": 4587, "libraryName": {"id": 4585, "name": "Strings", "nameLocations": ["305:7:25"], "nodeType": "IdentifierPath", "referencedDeclaration": 5273, "src": "305:7:25"}, "nodeType": "UsingForDirective", "src": "299:26:25", "typeName": {"id": 4586, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "317:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}}, {"constant": false, "id": 4591, "mutability": "mutable", "name": "_tokenURIs", "nameLocation": "405:10:25", "nodeType": "VariableDeclaration", "scope": 4703, "src": "370:45:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string)"}, "typeName": {"id": 4590, "keyType": {"id": 4588, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "378:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Mapping", "src": "370:26:25", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string)"}, "valueType": {"id": 4589, "name": "string", "nodeType": "ElementaryTypeName", "src": "389:6:25", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}}, "visibility": "private"}, {"baseFunctions": [3782], "body": {"id": 4649, "nodeType": "Block", "src": "570:520:25", "statements": [{"expression": {"arguments": [{"id": 4601, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4594, "src": "595:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4600, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4359, "src": "580:14:25", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view"}}, "id": 4602, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "580:23:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4603, "nodeType": "ExpressionStatement", "src": "580:23:25"}, {"assignments": [4605], "declarations": [{"constant": false, "id": 4605, "mutability": "mutable", "name": "_tokenURI", "nameLocation": "628:9:25", "nodeType": "VariableDeclaration", "scope": 4649, "src": "614:23:25", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4604, "name": "string", "nodeType": "ElementaryTypeName", "src": "614:6:25", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "id": 4609, "initialValue": {"baseExpression": {"id": 4606, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4591, "src": "640:10:25", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)"}}, "id": 4608, "indexExpression": {"id": 4607, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4594, "src": "651:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "640:19:25", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "614:45:25"}, {"assignments": [4611], "declarations": [{"constant": false, "id": 4611, "mutability": "mutable", "name": "base", "nameLocation": "683:4:25", "nodeType": "VariableDeclaration", "scope": 4649, "src": "669:18:25", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4610, "name": "string", "nodeType": "ElementaryTypeName", "src": "669:6:25", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "id": 4614, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 4612, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3791, "src": "690:8:25", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view returns (string memory)"}}, "id": 4613, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "690:10:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "nodeType": "VariableDeclarationStatement", "src": "669:31:25"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 4621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 4617, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4611, "src": "779:4:25", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 4616, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "773:5:25", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)"}, "typeName": {"id": 4615, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "773:5:25", "typeDescriptions": {}}}, "id": 4618, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "773:11:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 4619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "785:6:25", "memberName": "length", "nodeType": "MemberAccess", "src": "773:18:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 4620, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "795:1:25", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "773:23:25", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 4625, "nodeType": "IfStatement", "src": "769:70:25", "trueBody": {"id": 4624, "nodeType": "Block", "src": "798:41:25", "statements": [{"expression": {"id": 4622, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4605, "src": "819:9:25", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 4599, "id": 4623, "nodeType": "Return", "src": "812:16:25"}]}}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 4632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 4628, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4605, "src": "947:9:25", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 4627, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "941:5:25", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)"}, "typeName": {"id": 4626, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "941:5:25", "typeDescriptions": {}}}, "id": 4629, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "941:16:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 4630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "958:6:25", "memberName": "length", "nodeType": "MemberAccess", "src": "941:23:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 4631, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "967:1:25", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "941:27:25", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 4643, "nodeType": "IfStatement", "src": "937:106:25", "trueBody": {"id": 4642, "nodeType": "Block", "src": "970:73:25", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 4637, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4611, "src": "1015:4:25", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 4638, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4605, "src": "1021:9:25", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 4635, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "998:3:25", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 4636, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1002:12:25", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "998:16:25", "typeDescriptions": {"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)"}}, "id": 4639, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "998:33:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 4634, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "991:6:25", "typeDescriptions": {"typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)"}, "typeName": {"id": 4633, "name": "string", "nodeType": "ElementaryTypeName", "src": "991:6:25", "typeDescriptions": {}}}, "id": 4640, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "991:41:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 4599, "id": 4641, "nodeType": "Return", "src": "984:48:25"}]}}, {"expression": {"arguments": [{"id": 4646, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4594, "src": "1075:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 4644, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "1060:5:25", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_ERC721URIStorage_$4703_$", "typeString": "type(contract super ERC721URIStorage)"}}, "id": 4645, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1066:8:25", "memberName": "tokenURI", "nodeType": "MemberAccess", "referencedDeclaration": 3782, "src": "1060:14:25", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$", "typeString": "function (uint256) view returns (string memory)"}}, "id": 4647, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1060:23:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 4599, "id": 4648, "nodeType": "Return", "src": "1053:30:25"}]}, "documentation": {"id": 4592, "nodeType": "StructuredDocumentation", "src": "422:55:25", "text": " @dev See {IERC721Metadata-tokenURI}."}, "functionSelector": "c87b56dd", "id": 4650, "implemented": true, "kind": "function", "modifiers": [], "name": "tokenURI", "nameLocation": "491:8:25", "nodeType": "FunctionDefinition", "overrides": {"id": 4596, "nodeType": "OverrideSpecifier", "overrides": [], "src": "537:8:25"}, "parameters": {"id": 4595, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4594, "mutability": "mutable", "name": "tokenId", "nameLocation": "508:7:25", "nodeType": "VariableDeclaration", "scope": 4650, "src": "500:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4593, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "500:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "499:17:25"}, "returnParameters": {"id": 4599, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4598, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4650, "src": "555:13:25", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4597, "name": "string", "nodeType": "ElementaryTypeName", "src": "555:6:25", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "554:15:25"}, "scope": 4703, "src": "482:608:25", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"body": {"id": 4671, "nodeType": "Block", "src": "1318:133:25", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 4660, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4653, "src": "1344:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 4659, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4010, "src": "1336:7:25", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)"}}, "id": 4661, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1336:16:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "45524337323155524953746f726167653a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", "id": 4662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1354:48:25", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4", "typeString": "literal_string \"ERC721URIStorage: URI set of nonexistent token\""}, "value": "ERC721URIStorage: URI set of nonexistent token"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4", "typeString": "literal_string \"ERC721URIStorage: URI set of nonexistent token\""}], "id": 4658, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1328:7:25", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4663, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1328:75:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4664, "nodeType": "ExpressionStatement", "src": "1328:75:25"}, {"expression": {"id": 4669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 4665, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4591, "src": "1413:10:25", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)"}}, "id": 4667, "indexExpression": {"id": 4666, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4653, "src": "1424:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1413:19:25", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 4668, "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4655, "src": "1435:9:25", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "src": "1413:31:25", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "id": 4670, "nodeType": "ExpressionStatement", "src": "1413:31:25"}]}, "documentation": {"id": 4651, "nodeType": "StructuredDocumentation", "src": "1096:136:25", "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist."}, "id": 4672, "implemented": true, "kind": "function", "modifiers": [], "name": "_setTokenURI", "nameLocation": "1246:12:25", "nodeType": "FunctionDefinition", "parameters": {"id": 4656, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4653, "mutability": "mutable", "name": "tokenId", "nameLocation": "1267:7:25", "nodeType": "VariableDeclaration", "scope": 4672, "src": "1259:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4652, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1259:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 4655, "mutability": "mutable", "name": "_tokenURI", "nameLocation": "1290:9:25", "nodeType": "VariableDeclaration", "scope": 4672, "src": "1276:23:25", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4654, "name": "string", "nodeType": "ElementaryTypeName", "src": "1276:6:25", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1258:42:25"}, "returnParameters": {"id": 4657, "nodeType": "ParameterList", "parameters": [], "src": "1318:0:25"}, "scope": 4703, "src": "1237:214:25", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}, {"baseFunctions": [4214], "body": {"id": 4701, "nodeType": "Block", "src": "1727:142:25", "statements": [{"expression": {"arguments": [{"id": 4682, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4675, "src": "1749:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 4679, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "1737:5:25", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_ERC721URIStorage_$4703_$", "typeString": "type(contract super ERC721URIStorage)"}}, "id": 4681, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1743:5:25", "memberName": "_burn", "nodeType": "MemberAccess", "referencedDeclaration": 4214, "src": "1737:11:25", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)"}}, "id": 4683, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1737:20:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4684, "nodeType": "ExpressionStatement", "src": "1737:20:25"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 4693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"baseExpression": {"id": 4687, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4591, "src": "1778:10:25", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)"}}, "id": 4689, "indexExpression": {"id": 4688, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4675, "src": "1789:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1778:19:25", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}], "id": 4686, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1772:5:25", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)"}, "typeName": {"id": 4685, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1772:5:25", "typeDescriptions": {}}}, "id": 4690, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1772:26:25", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer"}}, "id": 4691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1799:6:25", "memberName": "length", "nodeType": "MemberAccess", "src": "1772:33:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 4692, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1809:1:25", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1772:38:25", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 4700, "nodeType": "IfStatement", "src": "1768:95:25", "trueBody": {"id": 4699, "nodeType": "Block", "src": "1812:51:25", "statements": [{"expression": {"id": 4697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "1826:26:25", "subExpression": {"baseExpression": {"id": 4694, "name": "_tokenURIs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4591, "src": "1833:10:25", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", "typeString": "mapping(uint256 => string storage ref)"}}, "id": 4696, "indexExpression": {"id": 4695, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4675, "src": "1844:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1833:19:25", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4698, "nodeType": "ExpressionStatement", "src": "1826:26:25"}]}}]}, "documentation": {"id": 4673, "nodeType": "StructuredDocumentation", "src": "1457:207:25", "text": " @dev See {ERC721-_burn}. This override additionally checks to see if a\n token-specific URI was set for the token, and if so, it deletes the token URI from\n the storage mapping."}, "id": 4702, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nameLocation": "1678:5:25", "nodeType": "FunctionDefinition", "overrides": {"id": 4677, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1718:8:25"}, "parameters": {"id": 4676, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4675, "mutability": "mutable", "name": "tokenId", "nameLocation": "1692:7:25", "nodeType": "VariableDeclaration", "scope": 4702, "src": "1684:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4674, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1684:7:25", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1683:17:25"}, "returnParameters": {"id": 4678, "nodeType": "ParameterList", "parameters": [], "src": "1727:0:25"}, "scope": 4703, "src": "1669:200:25", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}], "scope": 4704, "src": "248:1623:25", "usedErrors": []}], "src": "128:1744:25"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", "exportedSymbols": {"IERC165": [5309], "IERC721": [4560], "IERC721Metadata": [4730]}, "id": 4731, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 4705, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "112:23:26"}, {"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "../IERC721.sol", "id": 4706, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4731, "sourceUnit": 4561, "src": "137:24:26", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 4708, "name": "IERC721", "nameLocations": ["326:7:26"], "nodeType": "IdentifierPath", "referencedDeclaration": 4560, "src": "326:7:26"}, "id": 4709, "nodeType": "InheritanceSpecifier", "src": "326:7:26"}], "canonicalName": "IERC721Metadata", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 4707, "nodeType": "StructuredDocumentation", "src": "163:133:26", "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"}, "fullyImplemented": false, "id": 4730, "linearizedBaseContracts": [4730, 4560, 5309], "name": "IERC721Metadata", "nameLocation": "307:15:26", "nodeType": "ContractDefinition", "nodes": [{"documentation": {"id": 4710, "nodeType": "StructuredDocumentation", "src": "340:58:26", "text": " @dev Returns the token collection name."}, "functionSelector": "06fdde03", "id": 4715, "implemented": false, "kind": "function", "modifiers": [], "name": "name", "nameLocation": "412:4:26", "nodeType": "FunctionDefinition", "parameters": {"id": 4711, "nodeType": "ParameterList", "parameters": [], "src": "416:2:26"}, "returnParameters": {"id": 4714, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4713, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4715, "src": "442:13:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4712, "name": "string", "nodeType": "ElementaryTypeName", "src": "442:6:26", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "441:15:26"}, "scope": 4730, "src": "403:54:26", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4716, "nodeType": "StructuredDocumentation", "src": "463:60:26", "text": " @dev Returns the token collection symbol."}, "functionSelector": "95d89b41", "id": 4721, "implemented": false, "kind": "function", "modifiers": [], "name": "symbol", "nameLocation": "537:6:26", "nodeType": "FunctionDefinition", "parameters": {"id": 4717, "nodeType": "ParameterList", "parameters": [], "src": "543:2:26"}, "returnParameters": {"id": 4720, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4719, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4721, "src": "569:13:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4718, "name": "string", "nodeType": "ElementaryTypeName", "src": "569:6:26", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "568:15:26"}, "scope": 4730, "src": "528:56:26", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"documentation": {"id": 4722, "nodeType": "StructuredDocumentation", "src": "590:90:26", "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."}, "functionSelector": "c87b56dd", "id": 4729, "implemented": false, "kind": "function", "modifiers": [], "name": "tokenURI", "nameLocation": "694:8:26", "nodeType": "FunctionDefinition", "parameters": {"id": 4725, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4724, "mutability": "mutable", "name": "tokenId", "nameLocation": "711:7:26", "nodeType": "VariableDeclaration", "scope": 4729, "src": "703:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4723, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "703:7:26", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "702:17:26"}, "returnParameters": {"id": 4728, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4727, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4729, "src": "743:13:26", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4726, "name": "string", "nodeType": "ElementaryTypeName", "src": "743:6:26", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "742:15:26"}, "scope": 4730, "src": "685:73:26", "stateMutability": "view", "virtual": false, "visibility": "external"}], "scope": 4731, "src": "297:463:26", "usedErrors": []}], "src": "112:649:26"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/Address.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/utils/Address.sol", "exportedSymbols": {"Address": [5025]}, "id": 5026, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 4732, "literals": ["solidity", "^", "0.8", ".1"], "nodeType": "PragmaDirective", "src": "101:23:27"}, {"abstract": false, "baseContracts": [], "canonicalName": "Address", "contractDependencies": [], "contractKind": "library", "documentation": {"id": 4733, "nodeType": "StructuredDocumentation", "src": "126:67:27", "text": " @dev Collection of functions related to the address type"}, "fullyImplemented": true, "id": 5025, "linearizedBaseContracts": [5025], "name": "Address", "nameLocation": "202:7:27", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 4747, "nodeType": "Block", "src": "1241:254:27", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 4745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"expression": {"id": 4741, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4736, "src": "1465:7:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4742, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1473:4:27", "memberName": "code", "nodeType": "MemberAccess", "src": "1465:12:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 4743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1478:6:27", "memberName": "length", "nodeType": "MemberAccess", "src": "1465:19:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 4744, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1487:1:27", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1465:23:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 4740, "id": 4746, "nodeType": "Return", "src": "1458:30:27"}]}, "documentation": {"id": 4734, "nodeType": "StructuredDocumentation", "src": "216:954:27", "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="}, "id": 4748, "implemented": true, "kind": "function", "modifiers": [], "name": "isContract", "nameLocation": "1184:10:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4737, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4736, "mutability": "mutable", "name": "account", "nameLocation": "1203:7:27", "nodeType": "VariableDeclaration", "scope": 4748, "src": "1195:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4735, "name": "address", "nodeType": "ElementaryTypeName", "src": "1195:7:27", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1194:17:27"}, "returnParameters": {"id": 4740, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4739, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4748, "src": "1235:4:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4738, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1235:4:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "1234:6:27"}, "scope": 5025, "src": "1175:320:27", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 4781, "nodeType": "Block", "src": "2483:241:27", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 4763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 4759, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "2509:4:27", "typeDescriptions": {"typeIdentifier": "t_contract$_Address_$5025", "typeString": "library Address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_Address_$5025", "typeString": "library Address"}], "id": 4758, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2501:7:27", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4757, "name": "address", "nodeType": "ElementaryTypeName", "src": "2501:7:27", "typeDescriptions": {}}}, "id": 4760, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2501:13:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2515:7:27", "memberName": "balance", "nodeType": "MemberAccess", "src": "2501:21:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 4762, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4753, "src": "2526:6:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2501:31:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", "id": 4764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2534:31:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", "typeString": "literal_string \"Address: insufficient balance\""}, "value": "Address: insufficient balance"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", "typeString": "literal_string \"Address: insufficient balance\""}], "id": 4756, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2493:7:27", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4765, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2493:73:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4766, "nodeType": "ExpressionStatement", "src": "2493:73:27"}, {"assignments": [4768, null], "declarations": [{"constant": false, "id": 4768, "mutability": "mutable", "name": "success", "nameLocation": "2583:7:27", "nodeType": "VariableDeclaration", "scope": 4781, "src": "2578:12:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4767, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2578:4:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, null], "id": 4775, "initialValue": {"arguments": [{"hexValue": "", "id": 4773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2626:2:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}, "value": ""}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\""}], "expression": {"id": 4769, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4751, "src": "2596:9:27", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "id": 4770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2606:4:27", "memberName": "call", "nodeType": "MemberAccess", "src": "2596:14:27", "typeDescriptions": {"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)"}}, "id": 4772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": ["value"], "nodeType": "FunctionCallOptions", "options": [{"id": 4771, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4753, "src": "2618:6:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "src": "2596:29:27", "typeDescriptions": {"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)"}}, "id": 4774, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2596:33:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)"}}, "nodeType": "VariableDeclarationStatement", "src": "2577:52:27"}, {"expression": {"arguments": [{"id": 4777, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4768, "src": "2647:7:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", "id": 4778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2656:60:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\""}, "value": "Address: unable to send value, recipient may have reverted"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\""}], "id": 4776, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2639:7:27", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4779, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2639:78:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4780, "nodeType": "ExpressionStatement", "src": "2639:78:27"}]}, "documentation": {"id": 4749, "nodeType": "StructuredDocumentation", "src": "1501:906:27", "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."}, "id": 4782, "implemented": true, "kind": "function", "modifiers": [], "name": "sendValue", "nameLocation": "2421:9:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4754, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4751, "mutability": "mutable", "name": "recipient", "nameLocation": "2447:9:27", "nodeType": "VariableDeclaration", "scope": 4782, "src": "2431:25:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}, "typeName": {"id": 4750, "name": "address", "nodeType": "ElementaryTypeName", "src": "2431:15:27", "stateMutability": "payable", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "visibility": "internal"}, {"constant": false, "id": 4753, "mutability": "mutable", "name": "amount", "nameLocation": "2466:6:27", "nodeType": "VariableDeclaration", "scope": 4782, "src": "2458:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4752, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2458:7:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2430:43:27"}, "returnParameters": {"id": 4755, "nodeType": "ParameterList", "parameters": [], "src": "2483:0:27"}, "scope": 5025, "src": "2412:312:27", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 4798, "nodeType": "Block", "src": "3555:84:27", "statements": [{"expression": {"arguments": [{"id": 4793, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4785, "src": "3585:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4794, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4787, "src": "3593:4:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", "id": 4795, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3599:32:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", "typeString": "literal_string \"Address: low-level call failed\""}, "value": "Address: low-level call failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", "typeString": "literal_string \"Address: low-level call failed\""}], "id": 4792, "name": "functionCall", "nodeType": "Identifier", "overloadedDeclarations": [4799, 4819], "referencedDeclaration": 4819, "src": "3572:12:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)"}}, "id": 4796, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3572:60:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 4791, "id": 4797, "nodeType": "Return", "src": "3565:67:27"}]}, "documentation": {"id": 4783, "nodeType": "StructuredDocumentation", "src": "2730:731:27", "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"}, "id": 4799, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", "nameLocation": "3475:12:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4788, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4785, "mutability": "mutable", "name": "target", "nameLocation": "3496:6:27", "nodeType": "VariableDeclaration", "scope": 4799, "src": "3488:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4784, "name": "address", "nodeType": "ElementaryTypeName", "src": "3488:7:27", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4787, "mutability": "mutable", "name": "data", "nameLocation": "3517:4:27", "nodeType": "VariableDeclaration", "scope": 4799, "src": "3504:17:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4786, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3504:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "3487:35:27"}, "returnParameters": {"id": 4791, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4790, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4799, "src": "3541:12:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4789, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3541:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "3540:14:27"}, "scope": 5025, "src": "3466:173:27", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 4818, "nodeType": "Block", "src": "4008:76:27", "statements": [{"expression": {"arguments": [{"id": 4812, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4802, "src": "4047:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4813, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4804, "src": "4055:4:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"hexValue": "30", "id": 4814, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4061:1:27", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, {"id": 4815, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4806, "src": "4064:12:27", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 4811, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [4839, 4889], "referencedDeclaration": 4889, "src": "4025:21:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)"}}, "id": 4816, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4025:52:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 4810, "id": 4817, "nodeType": "Return", "src": "4018:59:27"}]}, "documentation": {"id": 4800, "nodeType": "StructuredDocumentation", "src": "3645:211:27", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"}, "id": 4819, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCall", "nameLocation": "3870:12:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4807, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4802, "mutability": "mutable", "name": "target", "nameLocation": "3900:6:27", "nodeType": "VariableDeclaration", "scope": 4819, "src": "3892:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4801, "name": "address", "nodeType": "ElementaryTypeName", "src": "3892:7:27", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4804, "mutability": "mutable", "name": "data", "nameLocation": "3929:4:27", "nodeType": "VariableDeclaration", "scope": 4819, "src": "3916:17:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4803, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3916:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 4806, "mutability": "mutable", "name": "errorMessage", "nameLocation": "3957:12:27", "nodeType": "VariableDeclaration", "scope": 4819, "src": "3943:26:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4805, "name": "string", "nodeType": "ElementaryTypeName", "src": "3943:6:27", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "3882:93:27"}, "returnParameters": {"id": 4810, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4809, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4819, "src": "3994:12:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4808, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3994:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "3993:14:27"}, "scope": 5025, "src": "3861:223:27", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 4838, "nodeType": "Block", "src": "4589:111:27", "statements": [{"expression": {"arguments": [{"id": 4832, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4822, "src": "4628:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4833, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4824, "src": "4636:4:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"id": 4834, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4826, "src": "4642:5:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", "id": 4835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4649:43:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", "typeString": "literal_string \"Address: low-level call with value failed\""}, "value": "Address: low-level call with value failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", "typeString": "literal_string \"Address: low-level call with value failed\""}], "id": 4831, "name": "functionCallWithValue", "nodeType": "Identifier", "overloadedDeclarations": [4839, 4889], "referencedDeclaration": 4889, "src": "4606:21:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)"}}, "id": 4836, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4606:87:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 4830, "id": 4837, "nodeType": "Return", "src": "4599:94:27"}]}, "documentation": {"id": 4820, "nodeType": "StructuredDocumentation", "src": "4090:351:27", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"}, "id": 4839, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", "nameLocation": "4455:21:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4827, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4822, "mutability": "mutable", "name": "target", "nameLocation": "4494:6:27", "nodeType": "VariableDeclaration", "scope": 4839, "src": "4486:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4821, "name": "address", "nodeType": "ElementaryTypeName", "src": "4486:7:27", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4824, "mutability": "mutable", "name": "data", "nameLocation": "4523:4:27", "nodeType": "VariableDeclaration", "scope": 4839, "src": "4510:17:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4823, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4510:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 4826, "mutability": "mutable", "name": "value", "nameLocation": "4545:5:27", "nodeType": "VariableDeclaration", "scope": 4839, "src": "4537:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4825, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4537:7:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4476:80:27"}, "returnParameters": {"id": 4830, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4829, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4839, "src": "4575:12:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4828, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4575:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "4574:14:27"}, "scope": 5025, "src": "4446:254:27", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 4888, "nodeType": "Block", "src": "5127:320:27", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 4860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"arguments": [{"id": 4856, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "5153:4:27", "typeDescriptions": {"typeIdentifier": "t_contract$_Address_$5025", "typeString": "library Address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_Address_$5025", "typeString": "library Address"}], "id": 4855, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5145:7:27", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 4854, "name": "address", "nodeType": "ElementaryTypeName", "src": "5145:7:27", "typeDescriptions": {}}}, "id": 4857, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5145:13:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5159:7:27", "memberName": "balance", "nodeType": "MemberAccess", "src": "5145:21:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 4859, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4846, "src": "5170:5:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5145:30:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", "id": 4861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5177:40:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", "typeString": "literal_string \"Address: insufficient balance for call\""}, "value": "Address: insufficient balance for call"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", "typeString": "literal_string \"Address: insufficient balance for call\""}], "id": 4853, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5137:7:27", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4862, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5137:81:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4863, "nodeType": "ExpressionStatement", "src": "5137:81:27"}, {"expression": {"arguments": [{"arguments": [{"id": 4866, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4842, "src": "5247:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 4865, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4748, "src": "5236:10:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)"}}, "id": 4867, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5236:18:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", "id": 4868, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5256:31:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", "typeString": "literal_string \"Address: call to non-contract\""}, "value": "Address: call to non-contract"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", "typeString": "literal_string \"Address: call to non-contract\""}], "id": 4864, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5228:7:27", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4869, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5228:60:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4870, "nodeType": "ExpressionStatement", "src": "5228:60:27"}, {"assignments": [4872, 4874], "declarations": [{"constant": false, "id": 4872, "mutability": "mutable", "name": "success", "nameLocation": "5305:7:27", "nodeType": "VariableDeclaration", "scope": 4888, "src": "5300:12:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4871, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5300:4:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 4874, "mutability": "mutable", "name": "returndata", "nameLocation": "5327:10:27", "nodeType": "VariableDeclaration", "scope": 4888, "src": "5314:23:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4873, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5314:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 4881, "initialValue": {"arguments": [{"id": 4879, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4844, "src": "5367:4:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"id": 4875, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4842, "src": "5341:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5348:4:27", "memberName": "call", "nodeType": "MemberAccess", "src": "5341:11:27", "typeDescriptions": {"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)"}}, "id": 4878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": ["value"], "nodeType": "FunctionCallOptions", "options": [{"id": 4877, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4846, "src": "5360:5:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "src": "5341:25:27", "typeDescriptions": {"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)"}}, "id": 4880, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5341:31:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)"}}, "nodeType": "VariableDeclarationStatement", "src": "5299:73:27"}, {"expression": {"arguments": [{"id": 4883, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4872, "src": "5406:7:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 4884, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4874, "src": "5415:10:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"id": 4885, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4848, "src": "5427:12:27", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 4882, "name": "verifyCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5024, "src": "5389:16:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)"}}, "id": 4886, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5389:51:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 4852, "id": 4887, "nodeType": "Return", "src": "5382:58:27"}]}, "documentation": {"id": 4840, "nodeType": "StructuredDocumentation", "src": "4706:237:27", "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"}, "id": 4889, "implemented": true, "kind": "function", "modifiers": [], "name": "functionCallWithValue", "nameLocation": "4957:21:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4849, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4842, "mutability": "mutable", "name": "target", "nameLocation": "4996:6:27", "nodeType": "VariableDeclaration", "scope": 4889, "src": "4988:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4841, "name": "address", "nodeType": "ElementaryTypeName", "src": "4988:7:27", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4844, "mutability": "mutable", "name": "data", "nameLocation": "5025:4:27", "nodeType": "VariableDeclaration", "scope": 4889, "src": "5012:17:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4843, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5012:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 4846, "mutability": "mutable", "name": "value", "nameLocation": "5047:5:27", "nodeType": "VariableDeclaration", "scope": 4889, "src": "5039:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 4845, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5039:7:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 4848, "mutability": "mutable", "name": "errorMessage", "nameLocation": "5076:12:27", "nodeType": "VariableDeclaration", "scope": 4889, "src": "5062:26:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4847, "name": "string", "nodeType": "ElementaryTypeName", "src": "5062:6:27", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "4978:116:27"}, "returnParameters": {"id": 4852, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4851, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4889, "src": "5113:12:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4850, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5113:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "5112:14:27"}, "scope": 5025, "src": "4948:499:27", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 4905, "nodeType": "Block", "src": "5724:97:27", "statements": [{"expression": {"arguments": [{"id": 4900, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4892, "src": "5760:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4901, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4894, "src": "5768:4:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", "id": 4902, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5774:39:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", "typeString": "literal_string \"Address: low-level static call failed\""}, "value": "Address: low-level static call failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", "typeString": "literal_string \"Address: low-level static call failed\""}], "id": 4899, "name": "functionStaticCall", "nodeType": "Identifier", "overloadedDeclarations": [4906, 4941], "referencedDeclaration": 4941, "src": "5741:18:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)"}}, "id": 4903, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5741:73:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 4898, "id": 4904, "nodeType": "Return", "src": "5734:80:27"}]}, "documentation": {"id": 4890, "nodeType": "StructuredDocumentation", "src": "5453:166:27", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"}, "id": 4906, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", "nameLocation": "5633:18:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4895, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4892, "mutability": "mutable", "name": "target", "nameLocation": "5660:6:27", "nodeType": "VariableDeclaration", "scope": 4906, "src": "5652:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4891, "name": "address", "nodeType": "ElementaryTypeName", "src": "5652:7:27", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4894, "mutability": "mutable", "name": "data", "nameLocation": "5681:4:27", "nodeType": "VariableDeclaration", "scope": 4906, "src": "5668:17:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4893, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5668:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "5651:35:27"}, "returnParameters": {"id": 4898, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4897, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4906, "src": "5710:12:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4896, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5710:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "5709:14:27"}, "scope": 5025, "src": "5624:197:27", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 4940, "nodeType": "Block", "src": "6163:228:27", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 4920, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4909, "src": "6192:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 4919, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4748, "src": "6181:10:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)"}}, "id": 4921, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6181:18:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", "id": 4922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6201:38:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", "typeString": "literal_string \"Address: static call to non-contract\""}, "value": "Address: static call to non-contract"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", "typeString": "literal_string \"Address: static call to non-contract\""}], "id": 4918, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6173:7:27", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4923, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6173:67:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4924, "nodeType": "ExpressionStatement", "src": "6173:67:27"}, {"assignments": [4926, 4928], "declarations": [{"constant": false, "id": 4926, "mutability": "mutable", "name": "success", "nameLocation": "6257:7:27", "nodeType": "VariableDeclaration", "scope": 4940, "src": "6252:12:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4925, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6252:4:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 4928, "mutability": "mutable", "name": "returndata", "nameLocation": "6279:10:27", "nodeType": "VariableDeclaration", "scope": 4940, "src": "6266:23:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4927, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6266:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 4933, "initialValue": {"arguments": [{"id": 4931, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4911, "src": "6311:4:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"id": 4929, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4909, "src": "6293:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6300:10:27", "memberName": "staticcall", "nodeType": "MemberAccess", "src": "6293:17:27", "typeDescriptions": {"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) view returns (bool,bytes memory)"}}, "id": 4932, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6293:23:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)"}}, "nodeType": "VariableDeclarationStatement", "src": "6251:65:27"}, {"expression": {"arguments": [{"id": 4935, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4926, "src": "6350:7:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 4936, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4928, "src": "6359:10:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"id": 4937, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4913, "src": "6371:12:27", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 4934, "name": "verifyCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5024, "src": "6333:16:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)"}}, "id": 4938, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6333:51:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 4917, "id": 4939, "nodeType": "Return", "src": "6326:58:27"}]}, "documentation": {"id": 4907, "nodeType": "StructuredDocumentation", "src": "5827:173:27", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"}, "id": 4941, "implemented": true, "kind": "function", "modifiers": [], "name": "functionStaticCall", "nameLocation": "6014:18:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4914, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4909, "mutability": "mutable", "name": "target", "nameLocation": "6050:6:27", "nodeType": "VariableDeclaration", "scope": 4941, "src": "6042:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4908, "name": "address", "nodeType": "ElementaryTypeName", "src": "6042:7:27", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4911, "mutability": "mutable", "name": "data", "nameLocation": "6079:4:27", "nodeType": "VariableDeclaration", "scope": 4941, "src": "6066:17:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4910, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6066:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 4913, "mutability": "mutable", "name": "errorMessage", "nameLocation": "6107:12:27", "nodeType": "VariableDeclaration", "scope": 4941, "src": "6093:26:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4912, "name": "string", "nodeType": "ElementaryTypeName", "src": "6093:6:27", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "6032:93:27"}, "returnParameters": {"id": 4917, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4916, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4941, "src": "6149:12:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4915, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6149:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "6148:14:27"}, "scope": 5025, "src": "6005:386:27", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 4957, "nodeType": "Block", "src": "6667:101:27", "statements": [{"expression": {"arguments": [{"id": 4952, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4944, "src": "6705:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 4953, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4946, "src": "6713:4:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", "id": 4954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6719:41:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", "typeString": "literal_string \"Address: low-level delegate call failed\""}, "value": "Address: low-level delegate call failed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", "typeString": "literal_string \"Address: low-level delegate call failed\""}], "id": 4951, "name": "functionDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [4958, 4993], "referencedDeclaration": 4993, "src": "6684:20:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (address,bytes memory,string memory) returns (bytes memory)"}}, "id": 4955, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6684:77:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 4950, "id": 4956, "nodeType": "Return", "src": "6677:84:27"}]}, "documentation": {"id": 4942, "nodeType": "StructuredDocumentation", "src": "6397:168:27", "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"}, "id": 4958, "implemented": true, "kind": "function", "modifiers": [], "name": "functionDelegateCall", "nameLocation": "6579:20:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4947, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4944, "mutability": "mutable", "name": "target", "nameLocation": "6608:6:27", "nodeType": "VariableDeclaration", "scope": 4958, "src": "6600:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4943, "name": "address", "nodeType": "ElementaryTypeName", "src": "6600:7:27", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4946, "mutability": "mutable", "name": "data", "nameLocation": "6629:4:27", "nodeType": "VariableDeclaration", "scope": 4958, "src": "6616:17:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4945, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6616:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "6599:35:27"}, "returnParameters": {"id": 4950, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4949, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4958, "src": "6653:12:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4948, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6653:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "6652:14:27"}, "scope": 5025, "src": "6570:198:27", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 4992, "nodeType": "Block", "src": "7109:232:27", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 4972, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4961, "src": "7138:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 4971, "name": "isContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4748, "src": "7127:10:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)"}}, "id": 4973, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7127:18:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", "id": 4974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7147:40:27", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", "typeString": "literal_string \"Address: delegate call to non-contract\""}, "value": "Address: delegate call to non-contract"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", "typeString": "literal_string \"Address: delegate call to non-contract\""}], "id": 4970, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "7119:7:27", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 4975, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7119:69:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 4976, "nodeType": "ExpressionStatement", "src": "7119:69:27"}, {"assignments": [4978, 4980], "declarations": [{"constant": false, "id": 4978, "mutability": "mutable", "name": "success", "nameLocation": "7205:7:27", "nodeType": "VariableDeclaration", "scope": 4992, "src": "7200:12:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4977, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7200:4:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 4980, "mutability": "mutable", "name": "returndata", "nameLocation": "7227:10:27", "nodeType": "VariableDeclaration", "scope": 4992, "src": "7214:23:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4979, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7214:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 4985, "initialValue": {"arguments": [{"id": 4983, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4963, "src": "7261:4:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"id": 4981, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4961, "src": "7241:6:27", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 4982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7248:12:27", "memberName": "delegatecall", "nodeType": "MemberAccess", "src": "7241:19:27", "typeDescriptions": {"typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) returns (bool,bytes memory)"}}, "id": 4984, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7241:25:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)"}}, "nodeType": "VariableDeclarationStatement", "src": "7199:67:27"}, {"expression": {"arguments": [{"id": 4987, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4978, "src": "7300:7:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 4988, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4980, "src": "7309:10:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, {"id": 4989, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4965, "src": "7321:12:27", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 4986, "name": "verifyCallResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5024, "src": "7283:16:27", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)"}}, "id": 4990, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7283:51:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 4969, "id": 4991, "nodeType": "Return", "src": "7276:58:27"}]}, "documentation": {"id": 4959, "nodeType": "StructuredDocumentation", "src": "6774:175:27", "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"}, "id": 4993, "implemented": true, "kind": "function", "modifiers": [], "name": "functionDelegateCall", "nameLocation": "6963:20:27", "nodeType": "FunctionDefinition", "parameters": {"id": 4966, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4961, "mutability": "mutable", "name": "target", "nameLocation": "7001:6:27", "nodeType": "VariableDeclaration", "scope": 4993, "src": "6993:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 4960, "name": "address", "nodeType": "ElementaryTypeName", "src": "6993:7:27", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 4963, "mutability": "mutable", "name": "data", "nameLocation": "7030:4:27", "nodeType": "VariableDeclaration", "scope": 4993, "src": "7017:17:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4962, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7017:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 4965, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7058:12:27", "nodeType": "VariableDeclaration", "scope": 4993, "src": "7044:26:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4964, "name": "string", "nodeType": "ElementaryTypeName", "src": "7044:6:27", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "6983:93:27"}, "returnParameters": {"id": 4969, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4968, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4993, "src": "7095:12:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4967, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7095:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "7094:14:27"}, "scope": 5025, "src": "6954:387:27", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 5023, "nodeType": "Block", "src": "7721:582:27", "statements": [{"condition": {"id": 5005, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4996, "src": "7735:7:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 5021, "nodeType": "Block", "src": "7792:505:27", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5012, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 5009, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4998, "src": "7876:10:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 5010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7887:6:27", "memberName": "length", "nodeType": "MemberAccess", "src": "7876:17:27", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 5011, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7896:1:27", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "7876:21:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 5019, "nodeType": "Block", "src": "8234:53:27", "statements": [{"expression": {"arguments": [{"id": 5016, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5000, "src": "8259:12:27", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 5015, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [-19, -19], "referencedDeclaration": -19, "src": "8252:6:27", "typeDescriptions": {"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure"}}, "id": 5017, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8252:20:27", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5018, "nodeType": "ExpressionStatement", "src": "8252:20:27"}]}, "id": 5020, "nodeType": "IfStatement", "src": "7872:415:27", "trueBody": {"id": 5014, "nodeType": "Block", "src": "7899:329:27", "statements": [{"AST": {"nodeType": "YulBlock", "src": "8069:145:27", "statements": [{"nodeType": "YulVariableDeclaration", "src": "8091:40:27", "value": {"arguments": [{"name": "returndata", "nodeType": "YulIdentifier", "src": "8120:10:27"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "8114:5:27"}, "nodeType": "YulFunctionCall", "src": "8114:17:27"}, "variables": [{"name": "returndata_size", "nodeType": "YulTypedName", "src": "8095:15:27", "type": ""}]}, {"expression": {"arguments": [{"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "8163:2:27", "type": "", "value": "32"}, {"name": "returndata", "nodeType": "YulIdentifier", "src": "8167:10:27"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "8159:3:27"}, "nodeType": "YulFunctionCall", "src": "8159:19:27"}, {"name": "returndata_size", "nodeType": "YulIdentifier", "src": "8180:15:27"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "8152:6:27"}, "nodeType": "YulFunctionCall", "src": "8152:44:27"}, "nodeType": "YulExpressionStatement", "src": "8152:44:27"}]}, "documentation": "@solidity memory-safe-assembly", "evmVersion": "london", "externalReferences": [{"declaration": 4998, "isOffset": false, "isSlot": false, "src": "8120:10:27", "valueSize": 1}, {"declaration": 4998, "isOffset": false, "isSlot": false, "src": "8167:10:27", "valueSize": 1}], "id": 5013, "nodeType": "InlineAssembly", "src": "8060:154:27"}]}}]}, "id": 5022, "nodeType": "IfStatement", "src": "7731:566:27", "trueBody": {"id": 5008, "nodeType": "Block", "src": "7744:42:27", "statements": [{"expression": {"id": 5006, "name": "returndata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4998, "src": "7765:10:27", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "functionReturnParameters": 5004, "id": 5007, "nodeType": "Return", "src": "7758:17:27"}]}}]}, "documentation": {"id": 4994, "nodeType": "StructuredDocumentation", "src": "7347:209:27", "text": " @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"}, "id": 5024, "implemented": true, "kind": "function", "modifiers": [], "name": "verifyCallResult", "nameLocation": "7570:16:27", "nodeType": "FunctionDefinition", "parameters": {"id": 5001, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 4996, "mutability": "mutable", "name": "success", "nameLocation": "7601:7:27", "nodeType": "VariableDeclaration", "scope": 5024, "src": "7596:12:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 4995, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7596:4:27", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 4998, "mutability": "mutable", "name": "returndata", "nameLocation": "7631:10:27", "nodeType": "VariableDeclaration", "scope": 5024, "src": "7618:23:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 4997, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7618:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}, {"constant": false, "id": 5000, "mutability": "mutable", "name": "errorMessage", "nameLocation": "7665:12:27", "nodeType": "VariableDeclaration", "scope": 5024, "src": "7651:26:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 4999, "name": "string", "nodeType": "ElementaryTypeName", "src": "7651:6:27", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "7586:97:27"}, "returnParameters": {"id": 5004, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5003, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5024, "src": "7707:12:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 5002, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7707:5:27", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "7706:14:27"}, "scope": 5025, "src": "7561:742:27", "stateMutability": "pure", "virtual": false, "visibility": "internal"}], "scope": 5026, "src": "194:8111:27", "usedErrors": []}], "src": "101:8205:27"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/Context.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/utils/Context.sol", "exportedSymbols": {"Context": [5047]}, "id": 5048, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 5027, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "86:23:28"}, {"abstract": true, "baseContracts": [], "canonicalName": "Context", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 5028, "nodeType": "StructuredDocumentation", "src": "111:496:28", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."}, "fullyImplemented": true, "id": 5047, "linearizedBaseContracts": [5047], "name": "Context", "nameLocation": "626:7:28", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 5036, "nodeType": "Block", "src": "702:34:28", "statements": [{"expression": {"expression": {"id": 5033, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "719:3:28", "typeDescriptions": {"typeIdentifier": "t_magic_message", "typeString": "msg"}}, "id": 5034, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "723:6:28", "memberName": "sender", "nodeType": "MemberAccess", "src": "719:10:28", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 5032, "id": 5035, "nodeType": "Return", "src": "712:17:28"}]}, "id": 5037, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nameLocation": "649:10:28", "nodeType": "FunctionDefinition", "parameters": {"id": 5029, "nodeType": "ParameterList", "parameters": [], "src": "659:2:28"}, "returnParameters": {"id": 5032, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5031, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5037, "src": "693:7:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 5030, "name": "address", "nodeType": "ElementaryTypeName", "src": "693:7:28", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "692:9:28"}, "scope": 5047, "src": "640:96:28", "stateMutability": "view", "virtual": true, "visibility": "internal"}, {"body": {"id": 5045, "nodeType": "Block", "src": "809:32:28", "statements": [{"expression": {"expression": {"id": 5042, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "826:3:28", "typeDescriptions": {"typeIdentifier": "t_magic_message", "typeString": "msg"}}, "id": 5043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "830:4:28", "memberName": "data", "nodeType": "MemberAccess", "src": "826:8:28", "typeDescriptions": {"typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata"}}, "functionReturnParameters": 5041, "id": 5044, "nodeType": "Return", "src": "819:15:28"}]}, "id": 5046, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nameLocation": "751:8:28", "nodeType": "FunctionDefinition", "parameters": {"id": 5038, "nodeType": "ParameterList", "parameters": [], "src": "759:2:28"}, "returnParameters": {"id": 5041, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5040, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5046, "src": "793:14:28", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": {"typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes"}, "typeName": {"id": 5039, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "793:5:28", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "792:16:28"}, "scope": 5047, "src": "742:99:28", "stateMutability": "view", "virtual": true, "visibility": "internal"}], "scope": 5048, "src": "608:235:28", "usedErrors": []}], "src": "86:758:28"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/Strings.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "exportedSymbols": {"Strings": [5273]}, "id": 5274, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 5049, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "101:23:29"}, {"abstract": false, "baseContracts": [], "canonicalName": "Strings", "contractDependencies": [], "contractKind": "library", "documentation": {"id": 5050, "nodeType": "StructuredDocumentation", "src": "126:34:29", "text": " @dev String operations."}, "fullyImplemented": true, "id": 5273, "linearizedBaseContracts": [5273], "name": "Strings", "nameLocation": "169:7:29", "nodeType": "ContractDefinition", "nodes": [{"constant": true, "id": 5053, "mutability": "constant", "name": "_HEX_SYMBOLS", "nameLocation": "208:12:29", "nodeType": "VariableDeclaration", "scope": 5273, "src": "183:58:29", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}, "typeName": {"id": 5051, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "183:7:29", "typeDescriptions": {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}}, "value": {"hexValue": "30313233343536373839616263646566", "id": 5052, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "223:18:29", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", "typeString": "literal_string \"0123456789abcdef\""}, "value": "0123456789abcdef"}, "visibility": "private"}, {"constant": true, "id": 5056, "mutability": "constant", "name": "_ADDRESS_LENGTH", "nameLocation": "270:15:29", "nodeType": "VariableDeclaration", "scope": 5273, "src": "247:43:29", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 5054, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "247:5:29", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "value": {"hexValue": "3230", "id": 5055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "288:2:29", "typeDescriptions": {"typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20"}, "value": "20"}, "visibility": "private"}, {"body": {"id": 5134, "nodeType": "Block", "src": "463:632:29", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5066, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5064, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5059, "src": "665:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 5065, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "674:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "665:10:29", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5070, "nodeType": "IfStatement", "src": "661:51:29", "trueBody": {"id": 5069, "nodeType": "Block", "src": "677:35:29", "statements": [{"expression": {"hexValue": "30", "id": 5067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "698:3:29", "typeDescriptions": {"typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", "typeString": "literal_string \"0\""}, "value": "0"}, "functionReturnParameters": 5063, "id": 5068, "nodeType": "Return", "src": "691:10:29"}]}}, {"assignments": [5072], "declarations": [{"constant": false, "id": 5072, "mutability": "mutable", "name": "temp", "nameLocation": "729:4:29", "nodeType": "VariableDeclaration", "scope": 5134, "src": "721:12:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5071, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "721:7:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 5074, "initialValue": {"id": 5073, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5059, "src": "736:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "721:20:29"}, {"assignments": [5076], "declarations": [{"constant": false, "id": 5076, "mutability": "mutable", "name": "digits", "nameLocation": "759:6:29", "nodeType": "VariableDeclaration", "scope": 5134, "src": "751:14:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5075, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "751:7:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 5077, "nodeType": "VariableDeclarationStatement", "src": "751:14:29"}, {"body": {"id": 5088, "nodeType": "Block", "src": "793:57:29", "statements": [{"expression": {"id": 5082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "807:8:29", "subExpression": {"id": 5081, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5076, "src": "807:6:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5083, "nodeType": "ExpressionStatement", "src": "807:8:29"}, {"expression": {"id": 5086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 5084, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5072, "src": "829:4:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "/=", "rightHandSide": {"hexValue": "3130", "id": 5085, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "837:2:29", "typeDescriptions": {"typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10"}, "value": "10"}, "src": "829:10:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5087, "nodeType": "ExpressionStatement", "src": "829:10:29"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5078, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5072, "src": "782:4:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 5079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "790:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "782:9:29", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5089, "nodeType": "WhileStatement", "src": "775:75:29"}, {"assignments": [5091], "declarations": [{"constant": false, "id": 5091, "mutability": "mutable", "name": "buffer", "nameLocation": "872:6:29", "nodeType": "VariableDeclaration", "scope": 5134, "src": "859:19:29", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 5090, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "859:5:29", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 5096, "initialValue": {"arguments": [{"id": 5094, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5076, "src": "891:6:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5093, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "881:9:29", "typeDescriptions": {"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes memory)"}, "typeName": {"id": 5092, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "885:5:29", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}}, "id": 5095, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "881:17:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "nodeType": "VariableDeclarationStatement", "src": "859:39:29"}, {"body": {"id": 5127, "nodeType": "Block", "src": "927:131:29", "statements": [{"expression": {"id": 5102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 5100, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5076, "src": "941:6:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"hexValue": "31", "id": 5101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "951:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "941:11:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5103, "nodeType": "ExpressionStatement", "src": "941:11:29"}, {"expression": {"id": 5121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 5104, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5091, "src": "966:6:29", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 5106, "indexExpression": {"id": 5105, "name": "digits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5076, "src": "973:6:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "966:14:29", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"hexValue": "3438", "id": 5111, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "996:2:29", "typeDescriptions": {"typeIdentifier": "t_rational_48_by_1", "typeString": "int_const 48"}, "value": "48"}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5114, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5059, "src": "1009:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": {"hexValue": "3130", "id": 5115, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1017:2:29", "typeDescriptions": {"typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10"}, "value": "10"}, "src": "1009:10:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5113, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1001:7:29", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)"}, "typeName": {"id": 5112, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1001:7:29", "typeDescriptions": {}}}, "id": 5117, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1001:19:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "996:24:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5110, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "990:5:29", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)"}, "typeName": {"id": 5109, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "990:5:29", "typeDescriptions": {}}}, "id": 5119, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "990:31:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint8", "typeString": "uint8"}], "id": 5108, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "983:6:29", "typeDescriptions": {"typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)"}, "typeName": {"id": 5107, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "983:6:29", "typeDescriptions": {}}}, "id": 5120, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "983:39:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "src": "966:56:29", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "id": 5122, "nodeType": "ExpressionStatement", "src": "966:56:29"}, {"expression": {"id": 5125, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 5123, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5059, "src": "1036:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "/=", "rightHandSide": {"hexValue": "3130", "id": 5124, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1045:2:29", "typeDescriptions": {"typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10"}, "value": "10"}, "src": "1036:11:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5126, "nodeType": "ExpressionStatement", "src": "1036:11:29"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5099, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5097, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5059, "src": "915:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 5098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "924:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "915:10:29", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5128, "nodeType": "WhileStatement", "src": "908:150:29"}, {"expression": {"arguments": [{"id": 5131, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5091, "src": "1081:6:29", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 5130, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1074:6:29", "typeDescriptions": {"typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)"}, "typeName": {"id": 5129, "name": "string", "nodeType": "ElementaryTypeName", "src": "1074:6:29", "typeDescriptions": {}}}, "id": 5132, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1074:14:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 5063, "id": 5133, "nodeType": "Return", "src": "1067:21:29"}]}, "documentation": {"id": 5057, "nodeType": "StructuredDocumentation", "src": "297:90:29", "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation."}, "id": 5135, "implemented": true, "kind": "function", "modifiers": [], "name": "toString", "nameLocation": "401:8:29", "nodeType": "FunctionDefinition", "parameters": {"id": 5060, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5059, "mutability": "mutable", "name": "value", "nameLocation": "418:5:29", "nodeType": "VariableDeclaration", "scope": 5135, "src": "410:13:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5058, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "410:7:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "409:15:29"}, "returnParameters": {"id": 5063, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5062, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5135, "src": "448:13:29", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5061, "name": "string", "nodeType": "ElementaryTypeName", "src": "448:6:29", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "447:15:29"}, "scope": 5273, "src": "392:703:29", "stateMutability": "pure", "virtual": false, "visibility": "internal"}, {"body": {"id": 5175, "nodeType": "Block", "src": "1274:255:29", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5145, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5143, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5138, "src": "1288:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 5144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1297:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1288:10:29", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5149, "nodeType": "IfStatement", "src": "1284:54:29", "trueBody": {"id": 5148, "nodeType": "Block", "src": "1300:38:29", "statements": [{"expression": {"hexValue": "30783030", "id": 5146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1321:6:29", "typeDescriptions": {"typeIdentifier": "t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4", "typeString": "literal_string \"0x00\""}, "value": "0x00"}, "functionReturnParameters": 5142, "id": 5147, "nodeType": "Return", "src": "1314:13:29"}]}}, {"assignments": [5151], "declarations": [{"constant": false, "id": 5151, "mutability": "mutable", "name": "temp", "nameLocation": "1355:4:29", "nodeType": "VariableDeclaration", "scope": 5175, "src": "1347:12:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5150, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1347:7:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 5153, "initialValue": {"id": 5152, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5138, "src": "1362:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "1347:20:29"}, {"assignments": [5155], "declarations": [{"constant": false, "id": 5155, "mutability": "mutable", "name": "length", "nameLocation": "1385:6:29", "nodeType": "VariableDeclaration", "scope": 5175, "src": "1377:14:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5154, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1377:7:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 5157, "initialValue": {"hexValue": "30", "id": 5156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1394:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "1377:18:29"}, {"body": {"id": 5168, "nodeType": "Block", "src": "1423:57:29", "statements": [{"expression": {"id": 5162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "1437:8:29", "subExpression": {"id": 5161, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5155, "src": "1437:6:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5163, "nodeType": "ExpressionStatement", "src": "1437:8:29"}, {"expression": {"id": 5166, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 5164, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5151, "src": "1459:4:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": {"hexValue": "38", "id": 5165, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1468:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8"}, "value": "8"}, "src": "1459:10:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5167, "nodeType": "ExpressionStatement", "src": "1459:10:29"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5158, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5151, "src": "1412:4:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 5159, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1420:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1412:9:29", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5169, "nodeType": "WhileStatement", "src": "1405:75:29"}, {"expression": {"arguments": [{"id": 5171, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5138, "src": "1508:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 5172, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5155, "src": "1515:6:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5170, "name": "toHexString", "nodeType": "Identifier", "overloadedDeclarations": [5176, 5252, 5272], "referencedDeclaration": 5252, "src": "1496:11:29", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", "typeString": "function (uint256,uint256) pure returns (string memory)"}}, "id": 5173, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1496:26:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 5142, "id": 5174, "nodeType": "Return", "src": "1489:33:29"}]}, "documentation": {"id": 5136, "nodeType": "StructuredDocumentation", "src": "1101:94:29", "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."}, "id": 5176, "implemented": true, "kind": "function", "modifiers": [], "name": "toHexString", "nameLocation": "1209:11:29", "nodeType": "FunctionDefinition", "parameters": {"id": 5139, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5138, "mutability": "mutable", "name": "value", "nameLocation": "1229:5:29", "nodeType": "VariableDeclaration", "scope": 5176, "src": "1221:13:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5137, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1221:7:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1220:15:29"}, "returnParameters": {"id": 5142, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5141, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5176, "src": "1259:13:29", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5140, "name": "string", "nodeType": "ElementaryTypeName", "src": "1259:6:29", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1258:15:29"}, "scope": 5273, "src": "1200:329:29", "stateMutability": "pure", "virtual": false, "visibility": "internal"}, {"body": {"id": 5251, "nodeType": "Block", "src": "1742:351:29", "statements": [{"assignments": [5187], "declarations": [{"constant": false, "id": 5187, "mutability": "mutable", "name": "buffer", "nameLocation": "1765:6:29", "nodeType": "VariableDeclaration", "scope": 5251, "src": "1752:19:29", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 5186, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1752:5:29", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "id": 5196, "initialValue": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"hexValue": "32", "id": 5190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1784:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2"}, "value": "2"}, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": {"id": 5191, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5181, "src": "1788:6:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1784:10:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"hexValue": "32", "id": 5193, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1797:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2"}, "value": "2"}, "src": "1784:14:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5189, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "1774:9:29", "typeDescriptions": {"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes memory)"}, "typeName": {"id": 5188, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1778:5:29", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}}, "id": 5195, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1774:25:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "nodeType": "VariableDeclarationStatement", "src": "1752:47:29"}, {"expression": {"id": 5201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 5197, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5187, "src": "1809:6:29", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 5199, "indexExpression": {"hexValue": "30", "id": 5198, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1816:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1809:9:29", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "30", "id": 5200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1821:3:29", "typeDescriptions": {"typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", "typeString": "literal_string \"0\""}, "value": "0"}, "src": "1809:15:29", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "id": 5202, "nodeType": "ExpressionStatement", "src": "1809:15:29"}, {"expression": {"id": 5207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 5203, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5187, "src": "1834:6:29", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 5205, "indexExpression": {"hexValue": "31", "id": 5204, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1841:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1834:9:29", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "78", "id": 5206, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1846:3:29", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", "typeString": "literal_string \"x\""}, "value": "x"}, "src": "1834:15:29", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "id": 5208, "nodeType": "ExpressionStatement", "src": "1834:15:29"}, {"body": {"id": 5237, "nodeType": "Block", "src": "1904:87:29", "statements": [{"expression": {"id": 5231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 5223, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5187, "src": "1918:6:29", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 5225, "indexExpression": {"id": 5224, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5210, "src": "1925:1:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1918:9:29", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"baseExpression": {"id": 5226, "name": "_HEX_SYMBOLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5053, "src": "1930:12:29", "typeDescriptions": {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}}, "id": 5230, "indexExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5229, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5227, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5179, "src": "1943:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": {"hexValue": "307866", "id": 5228, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1951:3:29", "typeDescriptions": {"typeIdentifier": "t_rational_15_by_1", "typeString": "int_const 15"}, "value": "0xf"}, "src": "1943:11:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1930:25:29", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "src": "1918:37:29", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "id": 5232, "nodeType": "ExpressionStatement", "src": "1918:37:29"}, {"expression": {"id": 5235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 5233, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5179, "src": "1969:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": {"hexValue": "34", "id": 5234, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1979:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4"}, "value": "4"}, "src": "1969:11:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5236, "nodeType": "ExpressionStatement", "src": "1969:11:29"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5217, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5210, "src": "1892:1:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "31", "id": 5218, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1896:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "1892:5:29", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5238, "initializationExpression": {"assignments": [5210], "declarations": [{"constant": false, "id": 5210, "mutability": "mutable", "name": "i", "nameLocation": "1872:1:29", "nodeType": "VariableDeclaration", "scope": 5238, "src": "1864:9:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5209, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1864:7:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 5216, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5215, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"hexValue": "32", "id": 5211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1876:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2"}, "value": "2"}, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": {"id": 5212, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5181, "src": "1880:6:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1876:10:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"hexValue": "31", "id": 5214, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1889:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "1876:14:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "1864:26:29"}, "loopExpression": {"expression": {"id": 5221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "--", "prefix": true, "src": "1899:3:29", "subExpression": {"id": 5220, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5210, "src": "1901:1:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5222, "nodeType": "ExpressionStatement", "src": "1899:3:29"}, "nodeType": "ForStatement", "src": "1859:132:29"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5240, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5179, "src": "2008:5:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 5241, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2017:1:29", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "2008:10:29", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", "id": 5243, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2020:34:29", "typeDescriptions": {"typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", "typeString": "literal_string \"Strings: hex length insufficient\""}, "value": "Strings: hex length insufficient"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", "typeString": "literal_string \"Strings: hex length insufficient\""}], "id": 5239, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2000:7:29", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5244, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2000:55:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5245, "nodeType": "ExpressionStatement", "src": "2000:55:29"}, {"expression": {"arguments": [{"id": 5248, "name": "buffer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5187, "src": "2079:6:29", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 5247, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2072:6:29", "typeDescriptions": {"typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)"}, "typeName": {"id": 5246, "name": "string", "nodeType": "ElementaryTypeName", "src": "2072:6:29", "typeDescriptions": {}}}, "id": 5249, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2072:14:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 5185, "id": 5250, "nodeType": "Return", "src": "2065:21:29"}]}, "documentation": {"id": 5177, "nodeType": "StructuredDocumentation", "src": "1535:112:29", "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."}, "id": 5252, "implemented": true, "kind": "function", "modifiers": [], "name": "toHexString", "nameLocation": "1661:11:29", "nodeType": "FunctionDefinition", "parameters": {"id": 5182, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5179, "mutability": "mutable", "name": "value", "nameLocation": "1681:5:29", "nodeType": "VariableDeclaration", "scope": 5252, "src": "1673:13:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5178, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1673:7:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 5181, "mutability": "mutable", "name": "length", "nameLocation": "1696:6:29", "nodeType": "VariableDeclaration", "scope": 5252, "src": "1688:14:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5180, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1688:7:29", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1672:31:29"}, "returnParameters": {"id": 5185, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5184, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5252, "src": "1727:13:29", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5183, "name": "string", "nodeType": "ElementaryTypeName", "src": "1727:6:29", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1726:15:29"}, "scope": 5273, "src": "1652:441:29", "stateMutability": "pure", "virtual": false, "visibility": "internal"}, {"body": {"id": 5271, "nodeType": "Block", "src": "2318:76:29", "statements": [{"expression": {"arguments": [{"arguments": [{"arguments": [{"id": 5265, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5255, "src": "2363:4:29", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 5264, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2355:7:29", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint160_$", "typeString": "type(uint160)"}, "typeName": {"id": 5263, "name": "uint160", "nodeType": "ElementaryTypeName", "src": "2355:7:29", "typeDescriptions": {}}}, "id": 5266, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2355:13:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint160", "typeString": "uint160"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint160", "typeString": "uint160"}], "id": 5262, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2347:7:29", "typeDescriptions": {"typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)"}, "typeName": {"id": 5261, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2347:7:29", "typeDescriptions": {}}}, "id": 5267, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2347:22:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 5268, "name": "_ADDRESS_LENGTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5056, "src": "2371:15:29", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint8", "typeString": "uint8"}], "id": 5260, "name": "toHexString", "nodeType": "Identifier", "overloadedDeclarations": [5176, 5252, 5272], "referencedDeclaration": 5252, "src": "2335:11:29", "typeDescriptions": {"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", "typeString": "function (uint256,uint256) pure returns (string memory)"}}, "id": 5269, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2335:52:29", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "functionReturnParameters": 5259, "id": 5270, "nodeType": "Return", "src": "2328:59:29"}]}, "documentation": {"id": 5253, "nodeType": "StructuredDocumentation", "src": "2099:141:29", "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."}, "id": 5272, "implemented": true, "kind": "function", "modifiers": [], "name": "toHexString", "nameLocation": "2254:11:29", "nodeType": "FunctionDefinition", "parameters": {"id": 5256, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5255, "mutability": "mutable", "name": "addr", "nameLocation": "2274:4:29", "nodeType": "VariableDeclaration", "scope": 5272, "src": "2266:12:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 5254, "name": "address", "nodeType": "ElementaryTypeName", "src": "2266:7:29", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2265:14:29"}, "returnParameters": {"id": 5259, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5258, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5272, "src": "2303:13:29", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5257, "name": "string", "nodeType": "ElementaryTypeName", "src": "2303:6:29", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2302:15:29"}, "scope": 5273, "src": "2245:149:29", "stateMutability": "pure", "virtual": false, "visibility": "internal"}], "scope": 5274, "src": "161:2235:29", "usedErrors": []}], "src": "101:2296:29"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", "exportedSymbols": {"ERC165": [5297], "IERC165": [5309]}, "id": 5298, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 5275, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "99:23:30"}, {"absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", "file": "./IERC165.sol", "id": 5276, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 5298, "sourceUnit": 5310, "src": "124:23:30", "symbolAliases": [], "unitAlias": ""}, {"abstract": true, "baseContracts": [{"baseName": {"id": 5278, "name": "IERC165", "nameLocations": ["754:7:30"], "nodeType": "IdentifierPath", "referencedDeclaration": 5309, "src": "754:7:30"}, "id": 5279, "nodeType": "InheritanceSpecifier", "src": "754:7:30"}], "canonicalName": "ERC165", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 5277, "nodeType": "StructuredDocumentation", "src": "149:576:30", "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."}, "fullyImplemented": true, "id": 5297, "linearizedBaseContracts": [5297, 5309], "name": "ERC165", "nameLocation": "744:6:30", "nodeType": "ContractDefinition", "nodes": [{"baseFunctions": [5308], "body": {"id": 5295, "nodeType": "Block", "src": "920:64:30", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "id": 5293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5288, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5282, "src": "937:11:30", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"arguments": [{"id": 5290, "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5309, "src": "957:7:30", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC165_$5309_$", "typeString": "type(contract IERC165)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_IERC165_$5309_$", "typeString": "type(contract IERC165)"}], "id": 5289, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "952:4:30", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 5291, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "952:13:30", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$5309", "typeString": "type(contract IERC165)"}}, "id": 5292, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "966:11:30", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "952:25:30", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "src": "937:40:30", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 5287, "id": 5294, "nodeType": "Return", "src": "930:47:30"}]}, "documentation": {"id": 5280, "nodeType": "StructuredDocumentation", "src": "768:56:30", "text": " @dev See {IERC165-supportsInterface}."}, "functionSelector": "01ffc9a7", "id": 5296, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "838:17:30", "nodeType": "FunctionDefinition", "overrides": {"id": 5284, "nodeType": "OverrideSpecifier", "overrides": [], "src": "896:8:30"}, "parameters": {"id": 5283, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5282, "mutability": "mutable", "name": "interfaceId", "nameLocation": "863:11:30", "nodeType": "VariableDeclaration", "scope": 5296, "src": "856:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 5281, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "856:6:30", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "855:20:30"}, "returnParameters": {"id": 5287, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5286, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5296, "src": "914:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 5285, "name": "bool", "nodeType": "ElementaryTypeName", "src": "914:4:30", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "913:6:30"}, "scope": 5297, "src": "829:155:30", "stateMutability": "view", "virtual": true, "visibility": "public"}], "scope": 5298, "src": "726:260:30", "usedErrors": []}], "src": "99:888:30"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": {"AST": {"absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", "exportedSymbols": {"IERC165": [5309]}, "id": 5310, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 5299, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "100:23:31"}, {"abstract": false, "baseContracts": [], "canonicalName": "IERC165", "contractDependencies": [], "contractKind": "interface", "documentation": {"id": 5300, "nodeType": "StructuredDocumentation", "src": "125:279:31", "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."}, "fullyImplemented": false, "id": 5309, "linearizedBaseContracts": [5309], "name": "IERC165", "nameLocation": "415:7:31", "nodeType": "ContractDefinition", "nodes": [{"documentation": {"id": 5301, "nodeType": "StructuredDocumentation", "src": "429:340:31", "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."}, "functionSelector": "01ffc9a7", "id": 5308, "implemented": false, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "783:17:31", "nodeType": "FunctionDefinition", "parameters": {"id": 5304, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5303, "mutability": "mutable", "name": "interfaceId", "nameLocation": "808:11:31", "nodeType": "VariableDeclaration", "scope": 5308, "src": "801:18:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 5302, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "801:6:31", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "800:20:31"}, "returnParameters": {"id": 5307, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5306, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5308, "src": "844:4:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 5305, "name": "bool", "nodeType": "ElementaryTypeName", "src": "844:4:31", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "843:6:31"}, "scope": 5309, "src": "774:76:31", "stateMutability": "view", "virtual": false, "visibility": "external"}], "scope": 5310, "src": "405:447:31", "usedErrors": []}], "src": "100:753:31"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/ERC721Test.sol": {"AST": {"absolutePath": "contracts/ERC721Test.sol", "exportedSymbols": {"ERC721": [4444], "ERC721Test": [5387], "ERC721URIStorage": [4703], "IERC721": [4560], "Ownable": [2808]}, "id": 5388, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 5311, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:32"}, {"absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", "id": 5315, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 5388, "sourceUnit": 4704, "src": "56:121:32", "symbolAliases": [{"foreign": {"id": 5312, "name": "IERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4560, "src": "65:7:32", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 5313, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4444, "src": "74:6:32", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 5314, "name": "ERC721URIStorage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4703, "src": "82:16:32", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/access/Ownable.sol", "file": "@openzeppelin/contracts/access/Ownable.sol", "id": 5317, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 5388, "sourceUnit": 2809, "src": "178:69:32", "symbolAliases": [{"foreign": {"id": 5316, "name": "Ownable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2808, "src": "187:7:32", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 5319, "name": "ERC721URIStorage", "nameLocations": ["364:16:32"], "nodeType": "IdentifierPath", "referencedDeclaration": 4703, "src": "364:16:32"}, "id": 5320, "nodeType": "InheritanceSpecifier", "src": "364:16:32"}, {"baseName": {"id": 5321, "name": "Ownable", "nameLocations": ["382:7:32"], "nodeType": "IdentifierPath", "referencedDeclaration": 2808, "src": "382:7:32"}, "id": 5322, "nodeType": "InheritanceSpecifier", "src": "382:7:32"}], "canonicalName": "ERC721Test", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 5318, "nodeType": "StructuredDocumentation", "src": "249:91:32", "text": " @dev This contract is using for testing create course with external NFT Contract"}, "fullyImplemented": true, "id": 5387, "linearizedBaseContracts": [5387, 2808, 4703, 4444, 4730, 4560, 5297, 5309, 5047], "name": "ERC721Test", "nameLocation": "350:10:32", "nodeType": "ContractDefinition", "nodes": [{"anonymous": false, "eventSelector": "9f0432214927ca5d54e705bee45cb45cd0b88d9c6bc15906cc3498feb1d81310", "id": 5330, "name": "MintedNFT", "nameLocation": "402:9:32", "nodeType": "EventDefinition", "parameters": {"id": 5329, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5324, "indexed": false, "mutability": "mutable", "name": "to", "nameLocation": "420:2:32", "nodeType": "VariableDeclaration", "scope": 5330, "src": "412:10:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 5323, "name": "address", "nodeType": "ElementaryTypeName", "src": "412:7:32", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 5326, "indexed": false, "mutability": "mutable", "name": "tokenId", "nameLocation": "432:7:32", "nodeType": "VariableDeclaration", "scope": 5330, "src": "424:15:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5325, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "424:7:32", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 5328, "indexed": false, "mutability": "mutable", "name": "uri", "nameLocation": "448:3:32", "nodeType": "VariableDeclaration", "scope": 5330, "src": "441:10:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5327, "name": "string", "nodeType": "ElementaryTypeName", "src": "441:6:32", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "411:41:32"}, "src": "396:57:32"}, {"constant": false, "documentation": {"id": 5331, "nodeType": "StructuredDocumentation", "src": "459:58:32", "text": " @notice ID of Minted NFT, increase by 1"}, "functionSelector": "714cff56", "id": 5333, "mutability": "mutable", "name": "tokenIds", "nameLocation": "537:8:32", "nodeType": "VariableDeclaration", "scope": 5387, "src": "522:23:32", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5332, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "522:7:32", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "public"}, {"body": {"id": 5345, "nodeType": "Block", "src": "766:2:32", "statements": []}, "documentation": {"id": 5334, "nodeType": "StructuredDocumentation", "src": "552:134:32", "text": " @notice Function called when contract is deployed\n @param name Name of NFT\n @param symbol Symbol of NFT"}, "id": 5346, "implemented": true, "kind": "constructor", "modifiers": [{"arguments": [{"id": 5341, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5336, "src": "752:4:32", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 5342, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5338, "src": "758:6:32", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "id": 5343, "kind": "baseConstructorSpecifier", "modifierName": {"id": 5340, "name": "ERC721", "nameLocations": ["745:6:32"], "nodeType": "IdentifierPath", "referencedDeclaration": 4444, "src": "745:6:32"}, "nodeType": "ModifierInvocation", "src": "745:20:32"}], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": {"id": 5339, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5336, "mutability": "mutable", "name": "name", "nameLocation": "717:4:32", "nodeType": "VariableDeclaration", "scope": 5346, "src": "703:18:32", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5335, "name": "string", "nodeType": "ElementaryTypeName", "src": "703:6:32", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 5338, "mutability": "mutable", "name": "symbol", "nameLocation": "737:6:32", "nodeType": "VariableDeclaration", "scope": 5346, "src": "723:20:32", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5337, "name": "string", "nodeType": "ElementaryTypeName", "src": "723:6:32", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "702:42:32"}, "returnParameters": {"id": 5344, "nodeType": "ParameterList", "parameters": [], "src": "766:0:32"}, "scope": 5387, "src": "691:77:32", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"body": {"id": 5385, "nodeType": "Block", "src": "1012:200:32", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 5362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5357, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5349, "src": "1030:3:32", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 5360, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1045:1:32", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 5359, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1037:7:32", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 5358, "name": "address", "nodeType": "ElementaryTypeName", "src": "1037:7:32", "typeDescriptions": {}}}, "id": 5361, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1037:10:32", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1030:17:32", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c69642061646472657373", "id": 5363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1049:17:32", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226", "typeString": "literal_string \"Invalid address\""}, "value": "Invalid address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226", "typeString": "literal_string \"Invalid address\""}], "id": 5356, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1022:7:32", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5364, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1022:45:32", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5365, "nodeType": "ExpressionStatement", "src": "1022:45:32"}, {"expression": {"id": 5367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "1077:10:32", "subExpression": {"id": 5366, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5333, "src": "1077:8:32", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5368, "nodeType": "ExpressionStatement", "src": "1077:10:32"}, {"expression": {"arguments": [{"id": 5370, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5349, "src": "1107:3:32", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5371, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5333, "src": "1112:8:32", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5369, "name": "_safeMint", "nodeType": "Identifier", "overloadedDeclarations": [4059, 4088], "referencedDeclaration": 4059, "src": "1097:9:32", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 5372, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1097:24:32", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5373, "nodeType": "ExpressionStatement", "src": "1097:24:32"}, {"expression": {"arguments": [{"id": 5375, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5333, "src": "1144:8:32", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 5376, "name": "_uri", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5351, "src": "1154:4:32", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 5374, "name": "_setTokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4672, "src": "1131:12:32", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)"}}, "id": 5377, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1131:28:32", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5378, "nodeType": "ExpressionStatement", "src": "1131:28:32"}, {"eventCall": {"arguments": [{"id": 5380, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5349, "src": "1185:3:32", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5381, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5333, "src": "1190:8:32", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 5382, "name": "_uri", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5351, "src": "1200:4:32", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 5379, "name": "MintedNFT", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5330, "src": "1175:9:32", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,uint256,string memory)"}}, "id": 5383, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1175:30:32", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5384, "nodeType": "EmitStatement", "src": "1170:35:32"}]}, "documentation": {"id": 5347, "nodeType": "StructuredDocumentation", "src": "774:164:32", "text": " @notice mint a NFT for _to address\n @param _to address of user\n @param _uri Ipfs link of NFT\n \n emit { MintedNFT } events"}, "functionSelector": "eacabe14", "id": 5386, "implemented": true, "kind": "function", "modifiers": [{"id": 5354, "kind": "modifierInvocation", "modifierName": {"id": 5353, "name": "onlyOwner", "nameLocations": ["1002:9:32"], "nodeType": "IdentifierPath", "referencedDeclaration": 2727, "src": "1002:9:32"}, "nodeType": "ModifierInvocation", "src": "1002:9:32"}], "name": "mintNFT", "nameLocation": "952:7:32", "nodeType": "FunctionDefinition", "parameters": {"id": 5352, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5349, "mutability": "mutable", "name": "_to", "nameLocation": "968:3:32", "nodeType": "VariableDeclaration", "scope": 5386, "src": "960:11:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 5348, "name": "address", "nodeType": "ElementaryTypeName", "src": "960:7:32", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 5351, "mutability": "mutable", "name": "_uri", "nameLocation": "987:4:32", "nodeType": "VariableDeclaration", "scope": 5386, "src": "973:18:32", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5350, "name": "string", "nodeType": "ElementaryTypeName", "src": "973:6:32", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "959:33:32"}, "returnParameters": {"id": 5355, "nodeType": "ParameterList", "parameters": [], "src": "1012:0:32"}, "scope": 5387, "src": "943:269:32", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 5388, "src": "341:873:32", "usedErrors": []}], "src": "32:1182:32"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/IOUToken.sol": {"AST": {"absolutePath": "contracts/IOUToken.sol", "exportedSymbols": {"ERC20": [3474], "IOUToken": [5429]}, "id": 5430, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 5389, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:33"}, {"absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 5391, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 5430, "sourceUnit": 3475, "src": "56:70:33", "symbolAliases": [{"foreign": {"id": 5390, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3474, "src": "65:5:33", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 5393, "name": "ERC20", "nameLocations": ["212:5:33"], "nodeType": "IdentifierPath", "referencedDeclaration": 3474, "src": "212:5:33"}, "id": 5394, "nodeType": "InheritanceSpecifier", "src": "212:5:33"}], "canonicalName": "IOUToken", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 5392, "nodeType": "StructuredDocumentation", "src": "128:62:33", "text": " @title IOUToken Contract\n @author ReBaked Team"}, "fullyImplemented": true, "id": 5429, "linearizedBaseContracts": [5429, 3474, 3577, 3552, 5047], "name": "IOUToken", "nameLocation": "200:8:33", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 5414, "nodeType": "Block", "src": "342:46:33", "statements": [{"expression": {"arguments": [{"id": 5410, "name": "account_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5396, "src": "358:8:33", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5411, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5398, "src": "368:12:33", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5409, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3291, "src": "352:5:33", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 5412, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "352:29:33", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5413, "nodeType": "ExpressionStatement", "src": "352:29:33"}]}, "id": 5415, "implemented": true, "kind": "constructor", "modifiers": [{"arguments": [{"id": 5405, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5400, "src": "326:5:33", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 5406, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5402, "src": "333:7:33", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "id": 5407, "kind": "baseConstructorSpecifier", "modifierName": {"id": 5404, "name": "ERC20", "nameLocations": ["320:5:33"], "nodeType": "IdentifierPath", "referencedDeclaration": 3474, "src": "320:5:33"}, "nodeType": "ModifierInvocation", "src": "320:21:33"}], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": {"id": 5403, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5396, "mutability": "mutable", "name": "account_", "nameLocation": "244:8:33", "nodeType": "VariableDeclaration", "scope": 5415, "src": "236:16:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 5395, "name": "address", "nodeType": "ElementaryTypeName", "src": "236:7:33", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 5398, "mutability": "mutable", "name": "totalSupply_", "nameLocation": "262:12:33", "nodeType": "VariableDeclaration", "scope": 5415, "src": "254:20:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5397, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "254:7:33", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 5400, "mutability": "mutable", "name": "name_", "nameLocation": "290:5:33", "nodeType": "VariableDeclaration", "scope": 5415, "src": "276:19:33", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5399, "name": "string", "nodeType": "ElementaryTypeName", "src": "276:6:33", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 5402, "mutability": "mutable", "name": "symbol_", "nameLocation": "311:7:33", "nodeType": "VariableDeclaration", "scope": 5415, "src": "297:21:33", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 5401, "name": "string", "nodeType": "ElementaryTypeName", "src": "297:6:33", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "235:84:33"}, "returnParameters": {"id": 5408, "nodeType": "ParameterList", "parameters": [], "src": "342:0:33"}, "scope": 5429, "src": "224:164:33", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"body": {"id": 5427, "nodeType": "Block", "src": "556:45:33", "statements": [{"expression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 5422, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5037, "src": "572:10:33", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 5423, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "572:12:33", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5424, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5418, "src": "586:7:33", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5421, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3363, "src": "566:5:33", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 5425, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "566:28:33", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5426, "nodeType": "ExpressionStatement", "src": "566:28:33"}]}, "documentation": {"id": 5416, "nodeType": "StructuredDocumentation", "src": "394:117:33", "text": " @notice Burn owned token\n @param amount_ Amount of token want to burn\n Emit {Transfer}"}, "functionSelector": "42966c68", "id": 5428, "implemented": true, "kind": "function", "modifiers": [], "name": "burn", "nameLocation": "525:4:33", "nodeType": "FunctionDefinition", "parameters": {"id": 5419, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5418, "mutability": "mutable", "name": "amount_", "nameLocation": "538:7:33", "nodeType": "VariableDeclaration", "scope": 5428, "src": "530:15:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5417, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "530:7:33", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "529:17:33"}, "returnParameters": {"id": 5420, "nodeType": "ParameterList", "parameters": [], "src": "556:0:33"}, "scope": 5429, "src": "516:85:33", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 5430, "src": "191:412:33", "usedErrors": []}], "src": "32:572:33"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/LearnToEarn.sol": {"AST": {"absolutePath": "contracts/LearnToEarn.sol", "exportedSymbols": {"Course": [8497], "ERC165CheckerUpgradeable": [2639], "IERC20Upgradeable": [419], "IERC721Upgradeable": [1762], "ILearnToEarn": [8606], "INFTReward": [8641], "LearnToEarn": [6300], "Learner": [8507], "OwnableUpgradeable": [131], "ReentrancyGuardUpgradeable": [341], "SafeERC20Upgradeable": [736]}, "id": 6301, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 5431, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:34"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "id": 5433, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6301, "sourceUnit": 342, "src": "57:121:34", "symbolAliases": [{"foreign": {"id": 5432, "name": "ReentrancyGuardUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 341, "src": "66:26:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "id": 5435, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6301, "sourceUnit": 132, "src": "179:103:34", "symbolAliases": [{"foreign": {"id": 5434, "name": "OwnableUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 131, "src": "188:18:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", "id": 5438, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6301, "sourceUnit": 737, "src": "283:137:34", "symbolAliases": [{"foreign": {"id": 5436, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "292:17:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 5437, "name": "SafeERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 736, "src": "311:20:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol", "id": 5440, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6301, "sourceUnit": 1763, "src": "421:109:34", "symbolAliases": [{"foreign": {"id": 5439, "name": "IERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, "src": "430:18:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol", "id": 5442, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6301, "sourceUnit": 2640, "src": "531:128:34", "symbolAliases": [{"foreign": {"id": 5441, "name": "ERC165CheckerUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2639, "src": "540:24:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/interfaces/ILearnToEarn.sol", "file": "./interfaces/ILearnToEarn.sol", "id": 5446, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6301, "sourceUnit": 8607, "src": "660:78:34", "symbolAliases": [{"foreign": {"id": 5443, "name": "ILearnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8606, "src": "669:12:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 5444, "name": "Course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8497, "src": "683:6:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 5445, "name": "Learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8507, "src": "691:7:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/interfaces/INFTReward.sol", "file": "./interfaces/INFTReward.sol", "id": 5448, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6301, "sourceUnit": 8642, "src": "739:57:34", "symbolAliases": [{"foreign": {"id": 5447, "name": "INFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8641, "src": "748:10:34", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 5449, "name": "ReentrancyGuardUpgradeable", "nameLocations": ["822:26:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 341, "src": "822:26:34"}, "id": 5450, "nodeType": "InheritanceSpecifier", "src": "822:26:34"}, {"baseName": {"id": 5451, "name": "OwnableUpgradeable", "nameLocations": ["850:18:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 131, "src": "850:18:34"}, "id": 5452, "nodeType": "InheritanceSpecifier", "src": "850:18:34"}, {"baseName": {"id": 5453, "name": "ILearnToEarn", "nameLocations": ["870:12:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8606, "src": "870:12:34"}, "id": 5454, "nodeType": "InheritanceSpecifier", "src": "870:12:34"}], "canonicalName": "LearnToEarn", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 6300, "linearizedBaseContracts": [6300, 8606, 131, 2219, 341, 282], "name": "LearnToEarn", "nameLocation": "807:11:34", "nodeType": "ContractDefinition", "nodes": [{"global": false, "id": 5458, "libraryName": {"id": 5455, "name": "SafeERC20Upgradeable", "nameLocations": ["895:20:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 736, "src": "895:20:34"}, "nodeType": "UsingForDirective", "src": "889:49:34", "typeName": {"id": 5457, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 5456, "name": "IERC20Upgradeable", "nameLocations": ["920:17:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 419, "src": "920:17:34"}, "referencedDeclaration": 419, "src": "920:17:34", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}}, {"global": false, "id": 5461, "libraryName": {"id": 5459, "name": "ERC165CheckerUpgradeable", "nameLocations": ["949:24:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 2639, "src": "949:24:34"}, "nodeType": "UsingForDirective", "src": "943:43:34", "typeName": {"id": 5460, "name": "address", "nodeType": "ElementaryTypeName", "src": "978:7:34", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}}, {"constant": false, "id": 5466, "mutability": "mutable", "name": "courseData", "nameLocation": "1053:10:34", "nodeType": "VariableDeclaration", "scope": 6300, "src": "1018:45:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course)"}, "typeName": {"id": 5465, "keyType": {"id": 5462, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1026:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1018:26:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course)"}, "valueType": {"id": 5464, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 5463, "name": "Course", "nameLocations": ["1037:6:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8497, "src": "1037:6:34"}, "referencedDeclaration": 8497, "src": "1037:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}}}, "visibility": "private"}, {"constant": false, "id": 5473, "mutability": "mutable", "name": "learnerData", "nameLocation": "1171:11:34", "nodeType": "VariableDeclaration", "scope": 6300, "src": "1115:67:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Learner))"}, "typeName": {"id": 5472, "keyType": {"id": 5467, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1123:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1115:47:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Learner))"}, "valueType": {"id": 5471, "keyType": {"id": 5468, "name": "address", "nodeType": "ElementaryTypeName", "src": "1142:7:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1134:27:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$", "typeString": "mapping(address => struct Learner)"}, "valueType": {"id": 5470, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 5469, "name": "Learner", "nameLocations": ["1153:7:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8507, "src": "1153:7:34"}, "referencedDeclaration": 8507, "src": "1153:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner"}}}}, "visibility": "private"}, {"body": {"id": 5486, "nodeType": "Block", "src": "1288:63:34", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5481, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5479, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5476, "src": "1306:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 5480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1316:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1306:11:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "5a65726f20616d6f756e74", "id": 5482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1319:13:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_499f3f4b0ad3588aa1eb6e198be77bff643a4218ffbf2bef1370e58aadea5df4", "typeString": "literal_string \"Zero amount\""}, "value": "Zero amount"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_499f3f4b0ad3588aa1eb6e198be77bff643a4218ffbf2bef1370e58aadea5df4", "typeString": "literal_string \"Zero amount\""}], "id": 5478, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1298:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5483, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1298:35:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5484, "nodeType": "ExpressionStatement", "src": "1298:35:34"}, {"id": 5485, "nodeType": "PlaceholderStatement", "src": "1343:1:34"}]}, "documentation": {"id": 5474, "nodeType": "StructuredDocumentation", "src": "1189:60:34", "text": " @notice Throws if amount provided is zero"}, "id": 5487, "name": "nonZero", "nameLocation": "1263:7:34", "nodeType": "ModifierDefinition", "parameters": {"id": 5477, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5476, "mutability": "mutable", "name": "amount_", "nameLocation": "1279:7:34", "nodeType": "VariableDeclaration", "scope": 5487, "src": "1271:15:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5475, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1271:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1270:17:34"}, "src": "1254:97:34", "virtual": false, "visibility": "internal"}, {"body": {"id": 5504, "nodeType": "Block", "src": "1490:169:34", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 5499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"id": 5493, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "1563:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 5495, "indexExpression": {"id": 5494, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5490, "src": "1574:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1563:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 5496, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1585:7:34", "memberName": "creator", "nodeType": "MemberAccess", "referencedDeclaration": 8474, "src": "1563:29:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 5497, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "1596:10:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 5498, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1596:12:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1563:45:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "63616c6c6572206973206e6f7420636f757273652063726561746f72", "id": 5500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1610:30:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6894a100d8d07d9daec9061ac8cbc5cd1f723ebb591831d8b6c58b4b547e48fe", "typeString": "literal_string \"caller is not course creator\""}, "value": "caller is not course creator"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_6894a100d8d07d9daec9061ac8cbc5cd1f723ebb591831d8b6c58b4b547e48fe", "typeString": "literal_string \"caller is not course creator\""}], "id": 5492, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1555:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5501, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1555:86:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5502, "nodeType": "ExpressionStatement", "src": "1555:86:34"}, {"id": 5503, "nodeType": "PlaceholderStatement", "src": "1651:1:34"}]}, "documentation": {"id": 5488, "nodeType": "StructuredDocumentation", "src": "1357:88:34", "text": " @notice Throws if called by any account other than the course creator"}, "id": 5505, "name": "onlyCreator", "nameLocation": "1459:11:34", "nodeType": "ModifierDefinition", "parameters": {"id": 5491, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5490, "mutability": "mutable", "name": "_courseId", "nameLocation": "1479:9:34", "nodeType": "VariableDeclaration", "scope": 5505, "src": "1471:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 5489, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1471:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "1470:19:34"}, "src": "1450:209:34", "virtual": false, "visibility": "internal"}, {"body": {"id": 5521, "nodeType": "Block", "src": "1771:157:34", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"id": 5511, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "1844:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 5513, "indexExpression": {"id": 5512, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5508, "src": "1855:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1844:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 5514, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1866:11:34", "memberName": "timeRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 8490, "src": "1844:33:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 5515, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1881:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1844:38:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "436f7572736520686173206265656e2072656d6f766564", "id": 5517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1884:25:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_fec35ac67795bd54ed81cdf5954e18327f4b22011c0d7dcf7681729a8d06fbd3", "typeString": "literal_string \"Course has been removed\""}, "value": "Course has been removed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_fec35ac67795bd54ed81cdf5954e18327f4b22011c0d7dcf7681729a8d06fbd3", "typeString": "literal_string \"Course has been removed\""}], "id": 5510, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1836:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5518, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1836:74:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5519, "nodeType": "ExpressionStatement", "src": "1836:74:34"}, {"id": 5520, "nodeType": "PlaceholderStatement", "src": "1920:1:34"}]}, "documentation": {"id": 5506, "nodeType": "StructuredDocumentation", "src": "1665:60:34", "text": " @notice Throws if course has been removed"}, "id": 5522, "name": "activeCourse", "nameLocation": "1739:12:34", "nodeType": "ModifierDefinition", "parameters": {"id": 5509, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5508, "mutability": "mutable", "name": "_courseId", "nameLocation": "1760:9:34", "nodeType": "VariableDeclaration", "scope": 5522, "src": "1752:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 5507, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1752:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "1751:19:34"}, "src": "1730:198:34", "virtual": false, "visibility": "internal"}, {"body": {"id": 5534, "nodeType": "Block", "src": "2099:67:34", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "id": 5528, "name": "__Ownable_init", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "2109:14:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()"}}, "id": 5529, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2109:16:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5530, "nodeType": "ExpressionStatement", "src": "2109:16:34"}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "id": 5531, "name": "__ReentrancyGuard_init", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 305, "src": "2135:22:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()"}}, "id": 5532, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2135:24:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5533, "nodeType": "ExpressionStatement", "src": "2135:24:34"}]}, "documentation": {"id": 5523, "nodeType": "StructuredDocumentation", "src": "1978:75:34", "text": " @notice Initialize of contract (replace for constructor)"}, "functionSelector": "8129fc1c", "id": 5535, "implemented": true, "kind": "function", "modifiers": [{"id": 5526, "kind": "modifierInvocation", "modifierName": {"id": 5525, "name": "initializer", "nameLocations": ["2087:11:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 202, "src": "2087:11:34"}, "nodeType": "ModifierInvocation", "src": "2087:11:34"}], "name": "initialize", "nameLocation": "2067:10:34", "nodeType": "FunctionDefinition", "parameters": {"id": 5524, "nodeType": "ParameterList", "parameters": [], "src": "2077:2:34"}, "returnParameters": {"id": 5527, "nodeType": "ParameterList", "parameters": [], "src": "2099:0:34"}, "scope": 6300, "src": "2058:108:34", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"baseFunctions": [8576], "body": {"id": 5713, "nodeType": "Block", "src": "3107:1834:34", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 5567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5562, "name": "_rewardAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5538, "src": "3125:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 5565, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3151:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 5564, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3143:7:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 5563, "name": "address", "nodeType": "ElementaryTypeName", "src": "3143:7:34", "typeDescriptions": {}}}, "id": 5566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3143:10:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "3125:28:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c6964207265776172642061646472657373", "id": 5568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3155:24:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6898b9fe3dfe29cad934ea252a7d8dd316b5385de07bb0a6b5be26d61cd10733", "typeString": "literal_string \"Invalid reward address\""}, "value": "Invalid reward address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_6898b9fe3dfe29cad934ea252a7d8dd316b5385de07bb0a6b5be26d61cd10733", "typeString": "literal_string \"Invalid reward address\""}], "id": 5561, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3117:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5569, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3117:63:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5570, "nodeType": "ExpressionStatement", "src": "3117:63:34"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5572, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5540, "src": "3198:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 5573, "name": "_bonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5542, "src": "3209:6:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3198:17:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c696420627564676574", "id": 5575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3217:16:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_953b3fb674fb21b5d42be556f7973161b4ff71b28b150528eda3492abb0654a4", "typeString": "literal_string \"Invalid budget\""}, "value": "Invalid budget"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_953b3fb674fb21b5d42be556f7973161b4ff71b28b150528eda3492abb0654a4", "typeString": "literal_string \"Invalid budget\""}], "id": 5571, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3190:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5576, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3190:44:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5577, "nodeType": "ExpressionStatement", "src": "3190:44:34"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5580, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5578, "name": "_timeStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5544, "src": "3247:10:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 5579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3261:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "3247:15:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"expression": {"id": 5592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 5589, "name": "_timeStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5544, "src": "3339:10:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 5590, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "3352:5:34", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 5591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3358:9:34", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "3352:15:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3339:28:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5593, "nodeType": "ExpressionStatement", "src": "3339:28:34"}, "id": 5594, "nodeType": "IfStatement", "src": "3244:123:34", "trueBody": {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5582, "name": "_timeStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5544, "src": "3272:10:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"expression": {"id": 5583, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "3286:5:34", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 5584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3292:9:34", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "3286:15:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3272:29:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c69642074696d65207374617274", "id": 5586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3303:20:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a0add4a6f50df9fdaaad5dd4d1d2f4ffb8cae2d2a8af167d1eb5c4c943da5829", "typeString": "literal_string \"Invalid time start\""}, "value": "Invalid time start"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_a0add4a6f50df9fdaaad5dd4d1d2f4ffb8cae2d2a8af167d1eb5c4c943da5829", "typeString": "literal_string \"Invalid time start\""}], "id": 5581, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3264:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5587, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3264:60:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5588, "nodeType": "ExpressionStatement", "src": "3264:60:34"}}, {"assignments": [5596], "declarations": [{"constant": false, "id": 5596, "mutability": "mutable", "name": "isValidTimeEndBonus", "nameLocation": "3383:19:34", "nodeType": "VariableDeclaration", "scope": 5713, "src": "3378:24:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 5595, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3378:4:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "id": 5611, "initialValue": {"condition": {"id": 5597, "name": "_isUsingDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5548, "src": "3405:16:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseExpression": {"components": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 5608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5602, "name": "_timeEndBonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5546, "src": "3447:13:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 5603, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3464:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "3447:18:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5605, "name": "_timeEndBonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5546, "src": "3469:13:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"id": 5606, "name": "_timeStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5544, "src": "3485:10:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3469:26:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "3447:48:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 5609, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3446:50:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5610, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "3405:91:34", "trueExpression": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5598, "name": "_timeEndBonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5546, "src": "3425:13:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 5599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3441:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "3425:17:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 5601, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3424:19:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "VariableDeclarationStatement", "src": "3378:118:34"}, {"expression": {"arguments": [{"id": 5613, "name": "isValidTimeEndBonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5596, "src": "3514:19:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c69642074696d6520656e6420626f6e7573", "id": 5614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3535:24:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_594f322e139d4166865edfc167a5a249d2f442d68f1d193dc8e7741e8652fec8", "typeString": "literal_string \"Invalid time end bonus\""}, "value": "Invalid time end bonus"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_594f322e139d4166865edfc167a5a249d2f442d68f1d193dc8e7741e8652fec8", "typeString": "literal_string \"Invalid time end bonus\""}], "id": 5612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3506:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5615, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3506:54:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5616, "nodeType": "ExpressionStatement", "src": "3506:54:34"}, {"assignments": [5618], "declarations": [{"constant": false, "id": 5618, "mutability": "mutable", "name": "_courseId", "nameLocation": "3579:9:34", "nodeType": "VariableDeclaration", "scope": 5713, "src": "3571:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 5617, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3571:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "id": 5621, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 5619, "name": "_generateCourseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6299, "src": "3591:17:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", "typeString": "function () view returns (bytes32)"}}, "id": 5620, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3591:19:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "VariableDeclarationStatement", "src": "3571:39:34"}, {"assignments": [5623], "declarations": [{"constant": false, "id": 5623, "mutability": "mutable", "name": "_canMintNFT", "nameLocation": "3625:11:34", "nodeType": "VariableDeclaration", "scope": 5713, "src": "3620:16:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 5622, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3620:4:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "id": 5625, "initialValue": {"hexValue": "66616c7365", "id": 5624, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3639:5:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "nodeType": "VariableDeclarationStatement", "src": "3620:24:34"}, {"condition": {"id": 5627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3658:14:34", "subExpression": {"id": 5626, "name": "_isBonusToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5550, "src": "3659:13:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5667, "nodeType": "IfStatement", "src": "3654:551:34", "trueBody": {"id": 5666, "nodeType": "Block", "src": "3674:531:34", "statements": [{"expression": {"id": 5636, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 5628, "name": "_canMintNFT", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5623, "src": "3811:11:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"expression": {"arguments": [{"id": 5632, "name": "INFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8641, "src": "3863:10:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_INFTReward_$8641_$", "typeString": "type(contract INFTReward)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_INFTReward_$8641_$", "typeString": "type(contract INFTReward)"}], "id": 5631, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "3858:4:34", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 5633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3858:16:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_INFTReward_$8641", "typeString": "type(contract INFTReward)"}}, "id": 5634, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3875:11:34", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "3858:28:34", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "expression": {"id": 5629, "name": "_rewardAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5538, "src": "3825:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 5630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3840:17:34", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 2495, "src": "3825:32:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$bound_to$_t_address_$", "typeString": "function (address,bytes4) view returns (bool)"}}, "id": 5635, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3825:62:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "3811:76:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5637, "nodeType": "ExpressionStatement", "src": "3811:76:34"}, {"condition": {"id": 5639, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3906:12:34", "subExpression": {"id": 5638, "name": "_canMintNFT", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5623, "src": "3907:11:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5665, "nodeType": "IfStatement", "src": "3902:293:34", "trueBody": {"id": 5664, "nodeType": "Block", "src": "3920:275:34", "statements": [{"expression": {"arguments": [{"arguments": [{"expression": {"arguments": [{"id": 5644, "name": "IERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, "src": "3984:18:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721Upgradeable_$1762_$", "typeString": "type(contract IERC721Upgradeable)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_IERC721Upgradeable_$1762_$", "typeString": "type(contract IERC721Upgradeable)"}], "id": 5643, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "3979:4:34", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 5645, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3979:24:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Upgradeable_$1762", "typeString": "type(contract IERC721Upgradeable)"}}, "id": 5646, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4004:11:34", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "3979:36:34", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "expression": {"id": 5641, "name": "_rewardAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5538, "src": "3946:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 5642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3961:17:34", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 2495, "src": "3946:32:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$bound_to$_t_address_$", "typeString": "function (address,bytes4) view returns (bool)"}}, "id": 5647, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3946:70:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "52657761726420636f6e7472616374206973206e6f7420455243373231", "id": 5648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4018:31:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8b0253e73b3deee2c6724a49cb1d65deb278726bc9530048605bdfd3f198ba89", "typeString": "literal_string \"Reward contract is not ERC721\""}, "value": "Reward contract is not ERC721"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_8b0253e73b3deee2c6724a49cb1d65deb278726bc9530048605bdfd3f198ba89", "typeString": "literal_string \"Reward contract is not ERC721\""}], "id": 5640, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3938:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5649, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3938:112:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5650, "nodeType": "ExpressionStatement", "src": "3938:112:34"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 5656, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "4121:10:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 5657, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4121:12:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"arguments": [{"id": 5653, "name": "_rewardAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5538, "src": "4095:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 5652, "name": "IERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, "src": "4076:18:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721Upgradeable_$1762_$", "typeString": "type(contract IERC721Upgradeable)"}}, "id": 5654, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4076:34:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC721Upgradeable_$1762", "typeString": "contract IERC721Upgradeable"}}, "id": 5655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4111:9:34", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 1687, "src": "4076:44:34", "typeDescriptions": {"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)"}}, "id": 5658, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4076:58:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"id": 5659, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5540, "src": "4138:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4076:69:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e73756666696369656e742063726561746f7227732062616c616e6365", "id": 5661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4147:32:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_352533491d1cdbf3e13a7bf4604b6348607c7b6881f17eac13e30536538fee9b", "typeString": "literal_string \"Insufficient creator's balance\""}, "value": "Insufficient creator's balance"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_352533491d1cdbf3e13a7bf4604b6348607c7b6881f17eac13e30536538fee9b", "typeString": "literal_string \"Insufficient creator's balance\""}], "id": 5651, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "4068:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5662, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4068:112:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5663, "nodeType": "ExpressionStatement", "src": "4068:112:34"}]}}]}}, {"expression": {"id": 5686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"id": 5668, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "4215:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 5670, "indexExpression": {"id": 5669, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5618, "src": "4226:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4215:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 5672, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "4269:10:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 5673, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4269:12:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5674, "name": "_rewardAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5538, "src": "4310:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5675, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5540, "src": "4346:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 5676, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5540, "src": "4384:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 5677, "name": "_bonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5542, "src": "4412:6:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"hexValue": "30", "id": 5678, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4459:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, {"id": 5679, "name": "_timeStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5544, "src": "4487:10:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 5680, "name": "_timeEndBonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5546, "src": "4525:13:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"hexValue": "30", "id": 5681, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4565:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, {"id": 5682, "name": "_isUsingDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5548, "src": "4597:16:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 5683, "name": "_isBonusToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5550, "src": "4641:13:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 5684, "name": "_canMintNFT", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5623, "src": "4680:11:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 5671, "name": "Course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8497, "src": "4239:6:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_struct$_Course_$8497_storage_ptr_$", "typeString": "type(struct Course storage pointer)"}}, "id": 5685, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": ["4260:7:34", "4295:13:34", "4338:6:34", "4367:15:34", "4405:5:34", "4432:25:34", "4474:11:34", "4511:12:34", "4552:11:34", "4580:15:34", "4627:12:34", "4668:10:34"], "names": ["creator", "rewardAddress", "budget", "budgetAvailable", "bonus", "totalLearnersClaimedBonus", "timeCreated", "timeEndBonus", "timeRemoved", "isUsingDuration", "isBonusToken", "canMintNFT"], "nodeType": "FunctionCall", "src": "4239:463:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "src": "4215:487:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 5687, "nodeType": "ExpressionStatement", "src": "4215:487:34"}, {"condition": {"id": 5688, "name": "_isBonusToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5550, "src": "4717:13:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5703, "nodeType": "IfStatement", "src": "4713:132:34", "trueBody": {"id": 5702, "nodeType": "Block", "src": "4732:113:34", "statements": [{"expression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 5693, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "4797:10:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 5694, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4797:12:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"id": 5697, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "4819:4:34", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}], "id": 5696, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4811:7:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 5695, "name": "address", "nodeType": "ElementaryTypeName", "src": "4811:7:34", "typeDescriptions": {}}}, "id": 5698, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4811:13:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5699, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5540, "src": "4826:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"id": 5690, "name": "_rewardAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5538, "src": "4764:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 5689, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "4746:17:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "type(contract IERC20Upgradeable)"}}, "id": 5691, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4746:33:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 5692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4780:16:34", "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 513, "src": "4746:50:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "function (contract IERC20Upgradeable,address,address,uint256)"}}, "id": 5700, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4746:88:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5701, "nodeType": "ExpressionStatement", "src": "4746:88:34"}]}}, {"eventCall": {"arguments": [{"id": 5705, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5618, "src": "4874:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"arguments": [], "expression": {"argumentTypes": [], "id": 5706, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "4885:10:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 5707, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4885:12:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5708, "name": "_rewardAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5538, "src": "4899:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5709, "name": "_bonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5542, "src": "4915:6:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 5710, "name": "_timeStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5544, "src": "4923:10:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5704, "name": "CreatedCourse", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8519, "src": "4860:13:34", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,address,uint256,uint256)"}}, "id": 5711, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4860:74:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5712, "nodeType": "EmitStatement", "src": "4855:79:34"}]}, "documentation": {"id": 5536, "nodeType": "StructuredDocumentation", "src": "2218:602:34", "text": " @notice Create new course\n @param _rewardAddress Address of token that reward to student after completing course\n @param _budget Total tokens/NFTs that reward\n @param _bonus Bonus when learner completed course\n @param _timeStart Start time of course\n @param _timeEndBonus end date will finish bonus or duration to receive bonus after enrolling in course\n @param _isUsingDuration Using duration for rewarding (true) or using end time (false)\n @param _isBonusToken Awards is token (true) or NFT (false)\n emit {CreatedCourse} event"}, "functionSelector": "b149fd18", "id": 5714, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 5553, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5540, "src": "3069:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 5554, "kind": "modifierInvocation", "modifierName": {"id": 5552, "name": "nonZero", "nameLocations": ["3061:7:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5487, "src": "3061:7:34"}, "nodeType": "ModifierInvocation", "src": "3061:16:34"}, {"arguments": [{"id": 5556, "name": "_bonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5542, "src": "3086:6:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 5557, "kind": "modifierInvocation", "modifierName": {"id": 5555, "name": "nonZero", "nameLocations": ["3078:7:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5487, "src": "3078:7:34"}, "nodeType": "ModifierInvocation", "src": "3078:15:34"}, {"id": 5559, "kind": "modifierInvocation", "modifierName": {"id": 5558, "name": "nonReentrant", "nameLocations": ["3094:12:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 335, "src": "3094:12:34"}, "nodeType": "ModifierInvocation", "src": "3094:12:34"}], "name": "createCourse", "nameLocation": "2834:12:34", "nodeType": "FunctionDefinition", "parameters": {"id": 5551, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5538, "mutability": "mutable", "name": "_rewardAddress", "nameLocation": "2864:14:34", "nodeType": "VariableDeclaration", "scope": 5714, "src": "2856:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 5537, "name": "address", "nodeType": "ElementaryTypeName", "src": "2856:7:34", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 5540, "mutability": "mutable", "name": "_budget", "nameLocation": "2896:7:34", "nodeType": "VariableDeclaration", "scope": 5714, "src": "2888:15:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5539, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2888:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 5542, "mutability": "mutable", "name": "_bonus", "nameLocation": "2921:6:34", "nodeType": "VariableDeclaration", "scope": 5714, "src": "2913:14:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5541, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2913:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 5544, "mutability": "mutable", "name": "_timeStart", "nameLocation": "2945:10:34", "nodeType": "VariableDeclaration", "scope": 5714, "src": "2937:18:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5543, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2937:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 5546, "mutability": "mutable", "name": "_timeEndBonus", "nameLocation": "2973:13:34", "nodeType": "VariableDeclaration", "scope": 5714, "src": "2965:21:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5545, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2965:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 5548, "mutability": "mutable", "name": "_isUsingDuration", "nameLocation": "3001:16:34", "nodeType": "VariableDeclaration", "scope": 5714, "src": "2996:21:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 5547, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2996:4:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 5550, "mutability": "mutable", "name": "_isBonusToken", "nameLocation": "3032:13:34", "nodeType": "VariableDeclaration", "scope": 5714, "src": "3027:18:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 5549, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3027:4:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "2846:205:34"}, "returnParameters": {"id": 5560, "nodeType": "ParameterList", "parameters": [], "src": "3107:0:34"}, "scope": 6300, "src": "2825:2116:34", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8584], "body": {"id": 5796, "nodeType": "Block", "src": "5272:563:34", "statements": [{"assignments": [5735], "declarations": [{"constant": false, "id": 5735, "mutability": "mutable", "name": "course", "nameLocation": "5297:6:34", "nodeType": "VariableDeclaration", "scope": 5796, "src": "5282:21:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}, "typeName": {"id": 5734, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 5733, "name": "Course", "nameLocations": ["5282:6:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8497, "src": "5282:6:34"}, "referencedDeclaration": 8497, "src": "5282:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}}, "visibility": "internal"}], "id": 5739, "initialValue": {"baseExpression": {"id": 5736, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "5306:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 5738, "indexExpression": {"id": 5737, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5717, "src": "5317:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5306:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "5282:45:34"}, {"expression": {"id": 5744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 5740, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5735, "src": "5338:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5742, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "5345:6:34", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 8478, "src": "5338:13:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 5743, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5719, "src": "5355:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5338:24:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5745, "nodeType": "ExpressionStatement", "src": "5338:24:34"}, {"expression": {"id": 5750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 5746, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5735, "src": "5372:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5748, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "5379:15:34", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "5372:22:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 5749, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5719, "src": "5398:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5372:33:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5751, "nodeType": "ExpressionStatement", "src": "5372:33:34"}, {"condition": {"expression": {"id": 5752, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5735, "src": "5420:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5753, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5427:12:34", "memberName": "isBonusToken", "nodeType": "MemberAccess", "referencedDeclaration": 8492, "src": "5420:19:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 5789, "nodeType": "Block", "src": "5566:216:34", "statements": [{"condition": {"id": 5771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "5584:18:34", "subExpression": {"expression": {"id": 5769, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5735, "src": "5585:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5770, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5592:10:34", "memberName": "canMintNFT", "nodeType": "MemberAccess", "referencedDeclaration": 8494, "src": "5585:17:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5788, "nodeType": "IfStatement", "src": "5580:192:34", "trueBody": {"id": 5787, "nodeType": "Block", "src": "5604:168:34", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5783, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 5778, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "5681:10:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 5779, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5681:12:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"arguments": [{"expression": {"id": 5774, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5735, "src": "5649:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5775, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5656:13:34", "memberName": "rewardAddress", "nodeType": "MemberAccess", "referencedDeclaration": 8476, "src": "5649:20:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 5773, "name": "IERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, "src": "5630:18:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721Upgradeable_$1762_$", "typeString": "type(contract IERC721Upgradeable)"}}, "id": 5776, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5630:40:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC721Upgradeable_$1762", "typeString": "contract IERC721Upgradeable"}}, "id": 5777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5671:9:34", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 1687, "src": "5630:50:34", "typeDescriptions": {"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)"}}, "id": 5780, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5630:64:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"expression": {"id": 5781, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5735, "src": "5698:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5782, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5705:15:34", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "5698:22:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5630:90:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "42616c616e6365206f662063726561746f72206973206e6f7420656e6f756768", "id": 5784, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5722:34:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_83dfce09b3b194edd564abfa34f22662964039406a177c554cc9bdb827d68cd8", "typeString": "literal_string \"Balance of creator is not enough\""}, "value": "Balance of creator is not enough"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_83dfce09b3b194edd564abfa34f22662964039406a177c554cc9bdb827d68cd8", "typeString": "literal_string \"Balance of creator is not enough\""}], "id": 5772, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5622:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5785, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5622:135:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5786, "nodeType": "ExpressionStatement", "src": "5622:135:34"}]}}]}, "id": 5790, "nodeType": "IfStatement", "src": "5416:366:34", "trueBody": {"id": 5768, "nodeType": "Block", "src": "5441:119:34", "statements": [{"expression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 5759, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "5512:10:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 5760, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5512:12:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"id": 5763, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "5534:4:34", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}], "id": 5762, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5526:7:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 5761, "name": "address", "nodeType": "ElementaryTypeName", "src": "5526:7:34", "typeDescriptions": {}}}, "id": 5764, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5526:13:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5765, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5719, "src": "5541:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"expression": {"id": 5755, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5735, "src": "5473:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5756, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5480:13:34", "memberName": "rewardAddress", "nodeType": "MemberAccess", "referencedDeclaration": 8476, "src": "5473:20:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 5754, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "5455:17:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "type(contract IERC20Upgradeable)"}}, "id": 5757, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5455:39:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 5758, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5495:16:34", "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 513, "src": "5455:56:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "function (contract IERC20Upgradeable,address,address,uint256)"}}, "id": 5766, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5455:94:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5767, "nodeType": "ExpressionStatement", "src": "5455:94:34"}]}}, {"eventCall": {"arguments": [{"id": 5792, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5717, "src": "5809:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 5793, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5719, "src": "5820:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5791, "name": "AddedBudget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8525, "src": "5797:11:34", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint256)"}}, "id": 5794, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5797:31:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5795, "nodeType": "EmitStatement", "src": "5792:36:34"}]}, "documentation": {"id": 5715, "nodeType": "StructuredDocumentation", "src": "4947:179:34", "text": " @notice Add more budget to course\n @param _courseId Id of course\n @param _budget Budget that added to course\n emit {AddedBudget} events"}, "functionSelector": "caca4ad3", "id": 5797, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 5722, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5717, "src": "5207:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 5723, "kind": "modifierInvocation", "modifierName": {"id": 5721, "name": "onlyCreator", "nameLocations": ["5195:11:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5505, "src": "5195:11:34"}, "nodeType": "ModifierInvocation", "src": "5195:22:34"}, {"arguments": [{"id": 5725, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5719, "src": "5226:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 5726, "kind": "modifierInvocation", "modifierName": {"id": 5724, "name": "nonZero", "nameLocations": ["5218:7:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5487, "src": "5218:7:34"}, "nodeType": "ModifierInvocation", "src": "5218:16:34"}, {"arguments": [{"id": 5728, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5717, "src": "5248:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 5729, "kind": "modifierInvocation", "modifierName": {"id": 5727, "name": "activeCourse", "nameLocations": ["5235:12:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5522, "src": "5235:12:34"}, "nodeType": "ModifierInvocation", "src": "5235:23:34"}, {"id": 5731, "kind": "modifierInvocation", "modifierName": {"id": 5730, "name": "nonReentrant", "nameLocations": ["5259:12:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 335, "src": "5259:12:34"}, "nodeType": "ModifierInvocation", "src": "5259:12:34"}], "name": "addBudget", "nameLocation": "5140:9:34", "nodeType": "FunctionDefinition", "parameters": {"id": 5720, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5717, "mutability": "mutable", "name": "_courseId", "nameLocation": "5158:9:34", "nodeType": "VariableDeclaration", "scope": 5797, "src": "5150:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 5716, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5150:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 5719, "mutability": "mutable", "name": "_budget", "nameLocation": "5177:7:34", "nodeType": "VariableDeclaration", "scope": 5797, "src": "5169:15:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5718, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5169:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5149:36:34"}, "returnParameters": {"id": 5732, "nodeType": "ParameterList", "parameters": [], "src": "5272:0:34"}, "scope": 6300, "src": "5131:704:34", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8599], "body": {"id": 6008, "nodeType": "Block", "src": "6584:1681:34", "statements": [{"assignments": [5820], "declarations": [{"constant": false, "id": 5820, "mutability": "mutable", "name": "course", "nameLocation": "6609:6:34", "nodeType": "VariableDeclaration", "scope": 6008, "src": "6594:21:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}, "typeName": {"id": 5819, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 5818, "name": "Course", "nameLocations": ["6594:6:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8497, "src": "6594:6:34"}, "referencedDeclaration": 8497, "src": "6594:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}}, "visibility": "internal"}], "id": 5824, "initialValue": {"baseExpression": {"id": 5821, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "6618:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 5823, "indexExpression": {"id": 5822, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5800, "src": "6629:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6618:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "6594:45:34"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 5834, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 5826, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "6657:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5827, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6664:11:34", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 8486, "src": "6657:18:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": {"id": 5828, "name": "_timeStarted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5804, "src": "6679:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6657:34:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5833, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5830, "name": "_timeStarted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5804, "src": "6695:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 5831, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "6710:5:34", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 5832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6716:9:34", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "6710:15:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6695:30:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "6657:68:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c69642074696d65207374617274", "id": 5835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6727:20:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a0add4a6f50df9fdaaad5dd4d1d2f4ffb8cae2d2a8af167d1eb5c4c943da5829", "typeString": "literal_string \"Invalid time start\""}, "value": "Invalid time start"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_a0add4a6f50df9fdaaad5dd4d1d2f4ffb8cae2d2a8af167d1eb5c4c943da5829", "typeString": "literal_string \"Invalid time start\""}], "id": 5825, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6649:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5836, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6649:99:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5837, "nodeType": "ExpressionStatement", "src": "6649:99:34"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5839, "name": "_timeCompleted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5806, "src": "6766:14:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"id": 5840, "name": "_timeStarted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5804, "src": "6783:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6766:29:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c69642074696d6520636f6d706c657465", "id": 5842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6797:23:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_35becb7e55a7b1042c3a4f0debfe12445315ceb18769da3cc17ee4e5b80b3db1", "typeString": "literal_string \"Invalid time complete\""}, "value": "Invalid time complete"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_35becb7e55a7b1042c3a4f0debfe12445315ceb18769da3cc17ee4e5b80b3db1", "typeString": "literal_string \"Invalid time complete\""}], "id": 5838, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6758:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5843, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6758:63:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5844, "nodeType": "ExpressionStatement", "src": "6758:63:34"}, {"assignments": [5847], "declarations": [{"constant": false, "id": 5847, "mutability": "mutable", "name": "learner", "nameLocation": "6848:7:34", "nodeType": "VariableDeclaration", "scope": 6008, "src": "6832:23:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner"}, "typeName": {"id": 5846, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 5845, "name": "Learner", "nameLocations": ["6832:7:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8507, "src": "6832:7:34"}, "referencedDeclaration": 8507, "src": "6832:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner"}}, "visibility": "internal"}], "id": 5853, "initialValue": {"baseExpression": {"baseExpression": {"id": 5848, "name": "learnerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5473, "src": "6858:11:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Learner storage ref))"}}, "id": 5850, "indexExpression": {"id": 5849, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5800, "src": "6870:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6858:22:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$", "typeString": "mapping(address => struct Learner storage ref)"}}, "id": 5852, "indexExpression": {"id": 5851, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5802, "src": "6881:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6858:32:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage", "typeString": "struct Learner storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "6832:58:34"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 5855, "name": "learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5847, "src": "6908:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner storage pointer"}}, "id": 5856, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6916:13:34", "memberName": "timeCompleted", "nodeType": "MemberAccess", "referencedDeclaration": 8501, "src": "6908:21:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 5857, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6933:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "6908:26:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "616c726561647920636f6d706c65746564", "id": 5859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6936:19:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_230f18378710789dc64312757ac1d12886bb79ee6078298d79265d08db0cfd11", "typeString": "literal_string \"already completed\""}, "value": "already completed"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_230f18378710789dc64312757ac1d12886bb79ee6078298d79265d08db0cfd11", "typeString": "literal_string \"already completed\""}], "id": 5854, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6900:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5860, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6900:56:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5861, "nodeType": "ExpressionStatement", "src": "6900:56:34"}, {"expression": {"id": 5866, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 5862, "name": "learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5847, "src": "6967:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner storage pointer"}}, "id": 5864, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "6975:11:34", "memberName": "timeStarted", "nodeType": "MemberAccess", "referencedDeclaration": 8499, "src": "6967:19:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 5865, "name": "_timeStarted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5804, "src": "6989:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6967:34:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5867, "nodeType": "ExpressionStatement", "src": "6967:34:34"}, {"assignments": [5869], "declarations": [{"constant": false, "id": 5869, "mutability": "mutable", "name": "canLearnerGetBonus", "nameLocation": "7016:18:34", "nodeType": "VariableDeclaration", "scope": 6008, "src": "7011:23:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 5868, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7011:4:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "id": 5875, "initialValue": {"arguments": [{"id": 5871, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5800, "src": "7049:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 5872, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5802, "src": "7060:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5873, "name": "_timeCompleted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5806, "src": "7070:14:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 5870, "name": "canGetBonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6220, "src": "7037:11:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (bytes32,address,uint256) view returns (bool)"}}, "id": 5874, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7037:48:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "VariableDeclarationStatement", "src": "7011:74:34"}, {"expression": {"id": 5880, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 5876, "name": "learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5847, "src": "7096:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner storage pointer"}}, "id": 5878, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "7104:13:34", "memberName": "timeCompleted", "nodeType": "MemberAccess", "referencedDeclaration": 8501, "src": "7096:21:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 5879, "name": "_timeCompleted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5806, "src": "7120:14:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7096:38:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5881, "nodeType": "ExpressionStatement", "src": "7096:38:34"}, {"condition": {"id": 5882, "name": "canLearnerGetBonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5869, "src": "7149:18:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 6002, "nodeType": "IfStatement", "src": "7145:1062:34", "trueBody": {"id": 6001, "nodeType": "Block", "src": "7169:1038:34", "statements": [{"expression": {"id": 5888, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 5883, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7183:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5885, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "7190:15:34", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "7183:22:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"expression": {"id": 5886, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7209:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5887, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7216:5:34", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 8482, "src": "7209:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7183:38:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5889, "nodeType": "ExpressionStatement", "src": "7183:38:34"}, {"expression": {"id": 5893, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "7235:34:34", "subExpression": {"expression": {"id": 5890, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7235:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5892, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "7242:25:34", "memberName": "totalLearnersClaimedBonus", "nodeType": "MemberAccess", "referencedDeclaration": 8484, "src": "7235:32:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5894, "nodeType": "ExpressionStatement", "src": "7235:34:34"}, {"expression": {"id": 5900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 5895, "name": "learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5847, "src": "7284:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner storage pointer"}}, "id": 5897, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "7292:12:34", "memberName": "timeRewarded", "nodeType": "MemberAccess", "referencedDeclaration": 8503, "src": "7284:20:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 5898, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "7307:5:34", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 5899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7313:9:34", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "7307:15:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7284:38:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5901, "nodeType": "ExpressionStatement", "src": "7284:38:34"}, {"condition": {"expression": {"id": 5902, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7341:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5903, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7348:12:34", "memberName": "isBonusToken", "nodeType": "MemberAccess", "referencedDeclaration": 8492, "src": "7341:19:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 5988, "nodeType": "Block", "src": "7477:615:34", "statements": [{"condition": {"expression": {"id": 5915, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7499:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5916, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7506:10:34", "memberName": "canMintNFT", "nodeType": "MemberAccess", "referencedDeclaration": 8494, "src": "7499:17:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseBody": {"id": 5986, "nodeType": "Block", "src": "7724:354:34", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 5946, "name": "_nftIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5809, "src": "7754:7:34", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, "id": 5947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7762:6:34", "memberName": "length", "nodeType": "MemberAccess", "src": "7754:14:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"id": 5948, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7772:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5949, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7779:5:34", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 8482, "src": "7772:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7754:30:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4e6f7420656e6f756768204e465473", "id": 5951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7786:17:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_810e89b1b7a08ad5ff0d7b77e73539e15c441915f3bfc810eb4e0b835c888902", "typeString": "literal_string \"Not enough NFTs\""}, "value": "Not enough NFTs"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_810e89b1b7a08ad5ff0d7b77e73539e15c441915f3bfc810eb4e0b835c888902", "typeString": "literal_string \"Not enough NFTs\""}], "id": 5945, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "7746:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 5952, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7746:58:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5953, "nodeType": "ExpressionStatement", "src": "7746:58:34"}, {"expression": {"id": 5958, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 5954, "name": "learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5847, "src": "7827:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner storage pointer"}}, "id": 5956, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "7835:6:34", "memberName": "nftIds", "nodeType": "MemberAccess", "referencedDeclaration": 8506, "src": "7827:14:34", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 5957, "name": "_nftIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5809, "src": "7844:7:34", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, "src": "7827:24:34", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref"}}, "id": 5959, "nodeType": "ExpressionStatement", "src": "7827:24:34"}, {"body": {"id": 5984, "nodeType": "Block", "src": "7918:142:34", "statements": [{"expression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 5976, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "8002:10:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 5977, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8002:12:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 5978, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5802, "src": "8016:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"baseExpression": {"id": 5979, "name": "_nftIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5809, "src": "8026:7:34", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, "id": 5981, "indexExpression": {"id": 5980, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5961, "src": "8034:1:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8026:10:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"expression": {"id": 5972, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7963:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5973, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7970:13:34", "memberName": "rewardAddress", "nodeType": "MemberAccess", "referencedDeclaration": 8476, "src": "7963:20:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 5971, "name": "IERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, "src": "7944:18:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC721Upgradeable_$1762_$", "typeString": "type(contract IERC721Upgradeable)"}}, "id": 5974, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7944:40:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC721Upgradeable_$1762", "typeString": "contract IERC721Upgradeable"}}, "id": 5975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7985:16:34", "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 1717, "src": "7944:57:34", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256) external"}}, "id": 5982, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7944:93:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5983, "nodeType": "ExpressionStatement", "src": "7944:93:34"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5964, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5961, "src": "7893:1:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 5965, "name": "_nftIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5809, "src": "7897:7:34", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, "id": 5966, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7905:6:34", "memberName": "length", "nodeType": "MemberAccess", "src": "7897:14:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7893:18:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5985, "initializationExpression": {"assignments": [5961], "declarations": [{"constant": false, "id": 5961, "mutability": "mutable", "name": "i", "nameLocation": "7886:1:34", "nodeType": "VariableDeclaration", "scope": 5985, "src": "7878:9:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5960, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7878:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 5963, "initialValue": {"hexValue": "30", "id": 5962, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7890:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "7878:13:34"}, "loopExpression": {"expression": {"id": 5969, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "7913:3:34", "subExpression": {"id": 5968, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5961, "src": "7913:1:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5970, "nodeType": "ExpressionStatement", "src": "7913:3:34"}, "nodeType": "ForStatement", "src": "7873:187:34"}]}, "id": 5987, "nodeType": "IfStatement", "src": "7495:583:34", "trueBody": {"id": 5944, "nodeType": "Block", "src": "7518:200:34", "statements": [{"body": {"id": 5942, "nodeType": "Block", "src": "7583:117:34", "statements": [{"expression": {"arguments": [{"arguments": [{"id": 5938, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5802, "src": "7667:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"arguments": [{"expression": {"id": 5934, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7640:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5935, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7647:13:34", "memberName": "rewardAddress", "nodeType": "MemberAccess", "referencedDeclaration": 8476, "src": "7640:20:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 5933, "name": "INFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8641, "src": "7629:10:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_INFTReward_$8641_$", "typeString": "type(contract INFTReward)"}}, "id": 5936, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7629:32:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}, "id": 5937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7662:4:34", "memberName": "mint", "nodeType": "MemberAccess", "referencedDeclaration": 8628, "src": "7629:37:34", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)"}}, "id": 5939, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7629:47:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"expression": {"id": 5928, "name": "learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5847, "src": "7609:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner storage pointer"}}, "id": 5931, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7617:6:34", "memberName": "nftIds", "nodeType": "MemberAccess", "referencedDeclaration": 8506, "src": "7609:14:34", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref"}}, "id": 5932, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7624:4:34", "memberName": "push", "nodeType": "MemberAccess", "src": "7609:19:34", "typeDescriptions": {"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer,uint256)"}}, "id": 5940, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7609:68:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5941, "nodeType": "ExpressionStatement", "src": "7609:68:34"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 5924, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 5921, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5918, "src": "7560:1:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 5922, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7564:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5923, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7571:5:34", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 8482, "src": "7564:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7560:16:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 5943, "initializationExpression": {"assignments": [5918], "declarations": [{"constant": false, "id": 5918, "mutability": "mutable", "name": "i", "nameLocation": "7553:1:34", "nodeType": "VariableDeclaration", "scope": 5943, "src": "7545:9:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5917, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7545:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 5920, "initialValue": {"hexValue": "30", "id": 5919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7557:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "7545:13:34"}, "loopExpression": {"expression": {"id": 5926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "7578:3:34", "subExpression": {"id": 5925, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5918, "src": "7578:1:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5927, "nodeType": "ExpressionStatement", "src": "7578:3:34"}, "nodeType": "ForStatement", "src": "7540:160:34"}]}}]}, "id": 5989, "nodeType": "IfStatement", "src": "7337:755:34", "trueBody": {"id": 5914, "nodeType": "Block", "src": "7362:109:34", "statements": [{"expression": {"arguments": [{"id": 5909, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5802, "src": "7433:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"expression": {"id": 5910, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7443:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5911, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7450:5:34", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 8482, "src": "7443:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"expression": {"id": 5905, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "7398:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5906, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7405:13:34", "memberName": "rewardAddress", "nodeType": "MemberAccess", "referencedDeclaration": 8476, "src": "7398:20:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 5904, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "7380:17:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "type(contract IERC20Upgradeable)"}}, "id": 5907, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7380:39:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 5908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7420:12:34", "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 487, "src": "7380:52:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "function (contract IERC20Upgradeable,address,uint256)"}}, "id": 5912, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7380:76:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 5913, "nodeType": "ExpressionStatement", "src": "7380:76:34"}]}}, {"eventCall": {"arguments": [{"id": 5991, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5800, "src": "8124:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 5992, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5802, "src": "8135:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"expression": {"id": 5993, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "8145:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5994, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8152:13:34", "memberName": "rewardAddress", "nodeType": "MemberAccess", "referencedDeclaration": 8476, "src": "8145:20:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"expression": {"id": 5995, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5820, "src": "8167:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 5996, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8174:5:34", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 8482, "src": "8167:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"expression": {"id": 5997, "name": "learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5847, "src": "8181:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner storage pointer"}}, "id": 5998, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8189:6:34", "memberName": "nftIds", "nodeType": "MemberAccess", "referencedDeclaration": 8506, "src": "8181:14:34", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref"}], "id": 5990, "name": "ClaimedReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8544, "src": "8110:13:34", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,address,address,uint256,uint256[] memory)"}}, "id": 5999, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8110:86:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6000, "nodeType": "EmitStatement", "src": "8105:91:34"}]}}, {"eventCall": {"arguments": [{"id": 6004, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5800, "src": "8238:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 6005, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5802, "src": "8249:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 6003, "name": "CompletedCourse", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8531, "src": "8222:15:34", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)"}}, "id": 6006, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8222:36:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6007, "nodeType": "EmitStatement", "src": "8217:41:34"}]}, "documentation": {"id": 5798, "nodeType": "StructuredDocumentation", "src": "5841:503:34", "text": " @notice Mark learner completed course and transfer bonus to learner\n @param _courseId Id of course\n @param _learner Address of learner\n @param _timeStarted Time when learner enrolled in course (seconds)\n @param _timeCompleted Time when learner complete course (seconds)\n @param _nftIds List Id of nfts that learner will receive if bonus is nfts\n emit {ClaimedReward} events if learner can receive rewards\n emit {CompletedCourse} events"}, "functionSelector": "3c41b482", "id": 6009, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 5812, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5800, "src": "6549:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 5813, "kind": "modifierInvocation", "modifierName": {"id": 5811, "name": "onlyCreator", "nameLocations": ["6537:11:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5505, "src": "6537:11:34"}, "nodeType": "ModifierInvocation", "src": "6537:22:34"}, {"arguments": [{"id": 5815, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5800, "src": "6573:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 5816, "kind": "modifierInvocation", "modifierName": {"id": 5814, "name": "activeCourse", "nameLocations": ["6560:12:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5522, "src": "6560:12:34"}, "nodeType": "ModifierInvocation", "src": "6560:23:34"}], "name": "completeCourse", "nameLocation": "6358:14:34", "nodeType": "FunctionDefinition", "parameters": {"id": 5810, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 5800, "mutability": "mutable", "name": "_courseId", "nameLocation": "6390:9:34", "nodeType": "VariableDeclaration", "scope": 6009, "src": "6382:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 5799, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6382:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 5802, "mutability": "mutable", "name": "_learner", "nameLocation": "6417:8:34", "nodeType": "VariableDeclaration", "scope": 6009, "src": "6409:16:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 5801, "name": "address", "nodeType": "ElementaryTypeName", "src": "6409:7:34", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 5804, "mutability": "mutable", "name": "_timeStarted", "nameLocation": "6443:12:34", "nodeType": "VariableDeclaration", "scope": 6009, "src": "6435:20:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5803, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6435:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 5806, "mutability": "mutable", "name": "_timeCompleted", "nameLocation": "6473:14:34", "nodeType": "VariableDeclaration", "scope": 6009, "src": "6465:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 5805, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6465:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 5809, "mutability": "mutable", "name": "_nftIds", "nameLocation": "6514:7:34", "nodeType": "VariableDeclaration", "scope": 6009, "src": "6497:24:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]"}, "typeName": {"baseType": {"id": 5807, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6497:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 5808, "nodeType": "ArrayTypeName", "src": "6497:9:34", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}}, "visibility": "internal"}], "src": "6372:155:34"}, "returnParameters": {"id": 5817, "nodeType": "ParameterList", "parameters": [], "src": "6584:0:34"}, "scope": 6300, "src": "6349:1916:34", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8605], "body": {"id": 6088, "nodeType": "Block", "src": "8543:562:34", "statements": [{"assignments": [6023], "declarations": [{"constant": false, "id": 6023, "mutability": "mutable", "name": "course", "nameLocation": "8568:6:34", "nodeType": "VariableDeclaration", "scope": 6088, "src": "8553:21:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}, "typeName": {"id": 6022, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6021, "name": "Course", "nameLocations": ["8553:6:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8497, "src": "8553:6:34"}, "referencedDeclaration": 8497, "src": "8553:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}}, "visibility": "internal"}], "id": 6027, "initialValue": {"baseExpression": {"id": 6024, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "8577:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6026, "indexExpression": {"id": 6025, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6012, "src": "8588:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8577:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "8553:45:34"}, {"expression": {"arguments": [{"expression": {"id": 6029, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "8616:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6030, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8623:12:34", "memberName": "isBonusToken", "nodeType": "MemberAccess", "referencedDeclaration": 8492, "src": "8616:19:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c696420616374696f6e", "id": 6031, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8637:16:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6f2677d92d5145565e0e2d97bb91aa8fab6e90fdadc635557da200934c599b12", "typeString": "literal_string \"Invalid action\""}, "value": "Invalid action"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_6f2677d92d5145565e0e2d97bb91aa8fab6e90fdadc635557da200934c599b12", "typeString": "literal_string \"Invalid action\""}], "id": 6028, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "8608:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6032, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8608:46:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6033, "nodeType": "ExpressionStatement", "src": "8608:46:34"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6035, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "8672:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6036, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8679:15:34", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "8672:22:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 6037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8697:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "8672:26:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4f7574206f6620627564676574", "id": 6039, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8700:15:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7cbbd07cd92f6a74380e3f810dbbe8ab829a82b5adc4c3aa0095bb7b24e67598", "typeString": "literal_string \"Out of budget\""}, "value": "Out of budget"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_7cbbd07cd92f6a74380e3f810dbbe8ab829a82b5adc4c3aa0095bb7b24e67598", "typeString": "literal_string \"Out of budget\""}], "id": 6034, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "8664:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6040, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8664:52:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6041, "nodeType": "ExpressionStatement", "src": "8664:52:34"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 6056, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6043, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "8734:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6044, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8741:15:34", "memberName": "isUsingDuration", "nodeType": "MemberAccess", "referencedDeclaration": 8496, "src": "8734:22:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"components": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 6054, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6045, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "8761:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6046, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8768:12:34", "memberName": "timeEndBonus", "nodeType": "MemberAccess", "referencedDeclaration": 8488, "src": "8761:19:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"hexValue": "30", "id": 6047, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8784:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "8761:24:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6053, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6049, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "8789:5:34", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 6050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "8795:9:34", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "8789:15:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"expression": {"id": 6051, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "8807:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6052, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8814:12:34", "memberName": "timeEndBonus", "nodeType": "MemberAccess", "referencedDeclaration": 8488, "src": "8807:19:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8789:37:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "8761:65:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 6055, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8760:67:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "8734:93:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "54696d6520626f6e757320686173206e6f7420656e646564", "id": 6057, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8829:26:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_221220c1e8d4607929523299e5fe37784f45490374b6fe8e14454751c1d83f2b", "typeString": "literal_string \"Time bonus has not ended\""}, "value": "Time bonus has not ended"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_221220c1e8d4607929523299e5fe37784f45490374b6fe8e14454751c1d83f2b", "typeString": "literal_string \"Time bonus has not ended\""}], "id": 6042, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "8726:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6058, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8726:130:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6059, "nodeType": "ExpressionStatement", "src": "8726:130:34"}, {"assignments": [6061], "declarations": [{"constant": false, "id": 6061, "mutability": "mutable", "name": "_amount", "nameLocation": "8875:7:34", "nodeType": "VariableDeclaration", "scope": 6088, "src": "8867:15:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6060, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8867:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6064, "initialValue": {"expression": {"id": 6062, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "8885:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6063, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8892:15:34", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "8885:22:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "8867:40:34"}, {"expression": {"id": 6069, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 6065, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "8918:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6067, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "8925:15:34", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "8918:22:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "30", "id": 6068, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8943:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "8918:26:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 6070, "nodeType": "ExpressionStatement", "src": "8918:26:34"}, {"expression": {"arguments": [{"expression": {"id": 6076, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "9007:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6077, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "9014:7:34", "memberName": "creator", "nodeType": "MemberAccess", "referencedDeclaration": 8474, "src": "9007:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6078, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6061, "src": "9023:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"expression": {"id": 6072, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "8972:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6073, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8979:13:34", "memberName": "rewardAddress", "nodeType": "MemberAccess", "referencedDeclaration": 8476, "src": "8972:20:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 6071, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "8954:17:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "type(contract IERC20Upgradeable)"}}, "id": 6074, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8954:39:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 6075, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "8994:12:34", "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 487, "src": "8954:52:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "function (contract IERC20Upgradeable,address,uint256)"}}, "id": 6079, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8954:77:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6080, "nodeType": "ExpressionStatement", "src": "8954:77:34"}, {"eventCall": {"arguments": [{"id": 6082, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6012, "src": "9063:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"expression": {"id": 6083, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6023, "src": "9074:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6084, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "9081:7:34", "memberName": "creator", "nodeType": "MemberAccess", "referencedDeclaration": 8474, "src": "9074:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6085, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6061, "src": "9090:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 6081, "name": "WithdrawnBudget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8552, "src": "9047:15:34", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,uint256)"}}, "id": 6086, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9047:51:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6087, "nodeType": "EmitStatement", "src": "9042:56:34"}]}, "documentation": {"id": 6010, "nodeType": "StructuredDocumentation", "src": "8271:168:34", "text": " @notice Creator can withdraw tokens bonus after time bonus ended\n @param _courseId Id of the course\n emit {WithdrawnBudget} events"}, "functionSelector": "669e88a1", "id": 6089, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 6015, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6012, "src": "8508:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 6016, "kind": "modifierInvocation", "modifierName": {"id": 6014, "name": "onlyCreator", "nameLocations": ["8496:11:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5505, "src": "8496:11:34"}, "nodeType": "ModifierInvocation", "src": "8496:22:34"}, {"arguments": [{"id": 6018, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6012, "src": "8532:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 6019, "kind": "modifierInvocation", "modifierName": {"id": 6017, "name": "activeCourse", "nameLocations": ["8519:12:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5522, "src": "8519:12:34"}, "nodeType": "ModifierInvocation", "src": "8519:23:34"}], "name": "withdrawBudget", "nameLocation": "8453:14:34", "nodeType": "FunctionDefinition", "parameters": {"id": 6013, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6012, "mutability": "mutable", "name": "_courseId", "nameLocation": "8476:9:34", "nodeType": "VariableDeclaration", "scope": 6089, "src": "8468:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6011, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "8468:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "8467:19:34"}, "returnParameters": {"id": 6020, "nodeType": "ParameterList", "parameters": [], "src": "8543:0:34"}, "scope": 6300, "src": "8444:661:34", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"body": {"id": 6150, "nodeType": "Block", "src": "9418:402:34", "statements": [{"assignments": [6103], "declarations": [{"constant": false, "id": 6103, "mutability": "mutable", "name": "course", "nameLocation": "9443:6:34", "nodeType": "VariableDeclaration", "scope": 6150, "src": "9428:21:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}, "typeName": {"id": 6102, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6101, "name": "Course", "nameLocations": ["9428:6:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8497, "src": "9428:6:34"}, "referencedDeclaration": 8497, "src": "9428:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}}, "visibility": "internal"}], "id": 6107, "initialValue": {"baseExpression": {"id": 6104, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "9452:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6106, "indexExpression": {"id": 6105, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6092, "src": "9463:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9452:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "9428:45:34"}, {"expression": {"id": 6113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 6108, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6103, "src": "9483:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6110, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "9490:11:34", "memberName": "timeRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 8490, "src": "9483:18:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 6111, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "9504:5:34", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 6112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "9510:9:34", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "9504:15:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "9483:36:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 6114, "nodeType": "ExpressionStatement", "src": "9483:36:34"}, {"assignments": [6116], "declarations": [{"constant": false, "id": 6116, "mutability": "mutable", "name": "_amount", "nameLocation": "9538:7:34", "nodeType": "VariableDeclaration", "scope": 6150, "src": "9530:15:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6115, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9530:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6119, "initialValue": {"expression": {"id": 6117, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6103, "src": "9548:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6118, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "9555:15:34", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "9548:22:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "9530:40:34"}, {"expression": {"id": 6124, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 6120, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6103, "src": "9580:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6122, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "9587:15:34", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "9580:22:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "30", "id": 6123, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9605:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "9580:26:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 6125, "nodeType": "ExpressionStatement", "src": "9580:26:34"}, {"condition": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 6131, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6126, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6103, "src": "9621:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6127, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "9628:12:34", "memberName": "isBonusToken", "nodeType": "MemberAccess", "referencedDeclaration": 8492, "src": "9621:19:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6128, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6116, "src": "9644:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 6129, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9654:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "9644:11:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "9621:34:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 6143, "nodeType": "IfStatement", "src": "9617:142:34", "trueBody": {"id": 6142, "nodeType": "Block", "src": "9657:102:34", "statements": [{"expression": {"arguments": [{"expression": {"id": 6137, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6103, "src": "9724:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6138, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "9731:7:34", "memberName": "creator", "nodeType": "MemberAccess", "referencedDeclaration": 8474, "src": "9724:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6139, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6116, "src": "9740:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"expression": {"id": 6133, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6103, "src": "9689:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6134, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "9696:13:34", "memberName": "rewardAddress", "nodeType": "MemberAccess", "referencedDeclaration": 8476, "src": "9689:20:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 6132, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "9671:17:34", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "type(contract IERC20Upgradeable)"}}, "id": 6135, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9671:39:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 6136, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "9711:12:34", "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 487, "src": "9671:52:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "function (contract IERC20Upgradeable,address,uint256)"}}, "id": 6140, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9671:77:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6141, "nodeType": "ExpressionStatement", "src": "9671:77:34"}]}}, {"eventCall": {"arguments": [{"id": 6145, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6092, "src": "9787:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"expression": {"id": 6146, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6103, "src": "9798:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course storage pointer"}}, "id": 6147, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "9805:7:34", "memberName": "creator", "nodeType": "MemberAccess", "referencedDeclaration": 8474, "src": "9798:14:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 6144, "name": "RemovedCourse", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8558, "src": "9773:13:34", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)"}}, "id": 6148, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9773:40:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6149, "nodeType": "EmitStatement", "src": "9768:45:34"}]}, "documentation": {"id": 6090, "nodeType": "StructuredDocumentation", "src": "9111:205:34", "text": " @notice Remove course and transfer token to creator\n @dev Only course's creator can call this method\n @param _courseId Id of course\n \n emit {RemovedCourse} events"}, "functionSelector": "9d84bf91", "id": 6151, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 6095, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6092, "src": "9383:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 6096, "kind": "modifierInvocation", "modifierName": {"id": 6094, "name": "onlyCreator", "nameLocations": ["9371:11:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5505, "src": "9371:11:34"}, "nodeType": "ModifierInvocation", "src": "9371:22:34"}, {"arguments": [{"id": 6098, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6092, "src": "9407:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 6099, "kind": "modifierInvocation", "modifierName": {"id": 6097, "name": "activeCourse", "nameLocations": ["9394:12:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 5522, "src": "9394:12:34"}, "nodeType": "ModifierInvocation", "src": "9394:23:34"}], "name": "removeCourse", "nameLocation": "9330:12:34", "nodeType": "FunctionDefinition", "parameters": {"id": 6093, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6092, "mutability": "mutable", "name": "_courseId", "nameLocation": "9351:9:34", "nodeType": "VariableDeclaration", "scope": 6151, "src": "9343:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6091, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9343:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "9342:19:34"}, "returnParameters": {"id": 6100, "nodeType": "ParameterList", "parameters": [], "src": "9418:0:34"}, "scope": 6300, "src": "9321:499:34", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"body": {"id": 6219, "nodeType": "Block", "src": "10133:454:34", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 6181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6171, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"id": 6163, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "10147:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6165, "indexExpression": {"id": 6164, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6154, "src": "10158:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10147:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 6166, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10169:15:34", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "10147:37:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"baseExpression": {"id": 6167, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "10187:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6169, "indexExpression": {"id": 6168, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6154, "src": "10198:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10187:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 6170, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10209:5:34", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 8482, "src": "10187:27:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "10147:67:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"baseExpression": {"id": 6172, "name": "learnerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5473, "src": "10219:11:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Learner storage ref))"}}, "id": 6174, "indexExpression": {"id": 6173, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6154, "src": "10231:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10219:22:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$", "typeString": "mapping(address => struct Learner storage ref)"}}, "id": 6176, "indexExpression": {"id": 6175, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6156, "src": "10242:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10219:32:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage", "typeString": "struct Learner storage ref"}}, "id": 6177, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10252:13:34", "memberName": "timeCompleted", "nodeType": "MemberAccess", "referencedDeclaration": 8501, "src": "10219:46:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 6178, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10268:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "10219:50:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 6180, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "10218:52:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "10147:123:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 6184, "nodeType": "IfStatement", "src": "10143:141:34", "trueBody": {"expression": {"hexValue": "66616c7365", "id": 6182, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10279:5:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "functionReturnParameters": 6162, "id": 6183, "nodeType": "Return", "src": "10272:12:34"}}, {"condition": {"expression": {"baseExpression": {"id": 6185, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "10299:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6187, "indexExpression": {"id": 6186, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6154, "src": "10310:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10299:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 6188, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10321:15:34", "memberName": "isUsingDuration", "nodeType": "MemberAccess", "referencedDeclaration": 8496, "src": "10299:37:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 6204, "nodeType": "IfStatement", "src": "10295:174:34", "trueBody": {"id": 6203, "nodeType": "Block", "src": "10338:131:34", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6189, "name": "_timeCompleted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6158, "src": "10359:14:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"baseExpression": {"id": 6190, "name": "learnerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5473, "src": "10377:11:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Learner storage ref))"}}, "id": 6192, "indexExpression": {"id": 6191, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6154, "src": "10389:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10377:22:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$", "typeString": "mapping(address => struct Learner storage ref)"}}, "id": 6194, "indexExpression": {"id": 6193, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6156, "src": "10400:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10377:32:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage", "typeString": "struct Learner storage ref"}}, "id": 6195, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10410:11:34", "memberName": "timeStarted", "nodeType": "MemberAccess", "referencedDeclaration": 8499, "src": "10377:44:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"expression": {"baseExpression": {"id": 6196, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "10424:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6198, "indexExpression": {"id": 6197, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6154, "src": "10435:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10424:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 6199, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10446:12:34", "memberName": "timeEndBonus", "nodeType": "MemberAccess", "referencedDeclaration": 8488, "src": "10424:34:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "10377:81:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "10359:99:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 6162, "id": 6202, "nodeType": "Return", "src": "10352:106:34"}]}}, {"expression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 6217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"id": 6205, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "10485:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6207, "indexExpression": {"id": 6206, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6154, "src": "10496:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10485:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 6208, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10507:12:34", "memberName": "timeEndBonus", "nodeType": "MemberAccess", "referencedDeclaration": 8488, "src": "10485:34:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 6209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10523:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "10485:39:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6211, "name": "_timeCompleted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6158, "src": "10528:14:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": {"expression": {"baseExpression": {"id": 6212, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "10546:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6214, "indexExpression": {"id": 6213, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6154, "src": "10557:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10546:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 6215, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10568:12:34", "memberName": "timeEndBonus", "nodeType": "MemberAccess", "referencedDeclaration": 8488, "src": "10546:34:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "10528:52:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "10485:95:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 6162, "id": 6218, "nodeType": "Return", "src": "10478:102:34"}]}, "documentation": {"id": 6152, "nodeType": "StructuredDocumentation", "src": "9868:151:34", "text": " @notice Check whether a learner can get bonus\n @param _courseId Id of the course\n @param _learner Address of the learner"}, "functionSelector": "fda626ce", "id": 6220, "implemented": true, "kind": "function", "modifiers": [], "name": "canGetBonus", "nameLocation": "10033:11:34", "nodeType": "FunctionDefinition", "parameters": {"id": 6159, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6154, "mutability": "mutable", "name": "_courseId", "nameLocation": "10053:9:34", "nodeType": "VariableDeclaration", "scope": 6220, "src": "10045:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6153, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "10045:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 6156, "mutability": "mutable", "name": "_learner", "nameLocation": "10072:8:34", "nodeType": "VariableDeclaration", "scope": 6220, "src": "10064:16:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6155, "name": "address", "nodeType": "ElementaryTypeName", "src": "10064:7:34", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 6158, "mutability": "mutable", "name": "_timeCompleted", "nameLocation": "10090:14:34", "nodeType": "VariableDeclaration", "scope": 6220, "src": "10082:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6157, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10082:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "10044:61:34"}, "returnParameters": {"id": 6162, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6161, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 6220, "src": "10127:4:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 6160, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10127:4:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "10126:6:34"}, "scope": 6300, "src": "10024:563:34", "stateMutability": "view", "virtual": false, "visibility": "public"}, {"body": {"id": 6233, "nodeType": "Block", "src": "10793:45:34", "statements": [{"expression": {"baseExpression": {"id": 6229, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "10810:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6231, "indexExpression": {"id": 6230, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6223, "src": "10821:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10810:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "functionReturnParameters": 6228, "id": 6232, "nodeType": "Return", "src": "10803:28:34"}]}, "documentation": {"id": 6221, "nodeType": "StructuredDocumentation", "src": "10593:115:34", "text": " @notice Get course details\n @param _courseId Id of course\n @return Details of course"}, "functionSelector": "db631a89", "id": 6234, "implemented": true, "kind": "function", "modifiers": [], "name": "getCourseData", "nameLocation": "10722:13:34", "nodeType": "FunctionDefinition", "parameters": {"id": 6224, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6223, "mutability": "mutable", "name": "_courseId", "nameLocation": "10744:9:34", "nodeType": "VariableDeclaration", "scope": 6234, "src": "10736:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6222, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "10736:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "10735:19:34"}, "returnParameters": {"id": 6228, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6227, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 6234, "src": "10778:13:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course"}, "typeName": {"id": 6226, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6225, "name": "Course", "nameLocations": ["10778:6:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8497, "src": "10778:6:34"}, "referencedDeclaration": 8497, "src": "10778:6:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}}, "visibility": "internal"}], "src": "10777:15:34"}, "scope": 6300, "src": "10713:125:34", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"body": {"id": 6251, "nodeType": "Block", "src": "11122:56:34", "statements": [{"expression": {"baseExpression": {"baseExpression": {"id": 6245, "name": "learnerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5473, "src": "11139:11:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Learner storage ref))"}}, "id": 6247, "indexExpression": {"id": 6246, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6237, "src": "11151:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11139:22:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Learner_$8507_storage_$", "typeString": "mapping(address => struct Learner storage ref)"}}, "id": 6249, "indexExpression": {"id": 6248, "name": "_learner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6239, "src": "11162:8:34", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11139:32:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage", "typeString": "struct Learner storage ref"}}, "functionReturnParameters": 6244, "id": 6250, "nodeType": "Return", "src": "11132:39:34"}]}, "documentation": {"id": 6235, "nodeType": "StructuredDocumentation", "src": "10844:173:34", "text": " @notice Get learner course details\n @param _courseId Id of course\n @param _learner Address of learner\n @return Details of learner course"}, "functionSelector": "2cca6f2d", "id": 6252, "implemented": true, "kind": "function", "modifiers": [], "name": "getLearnerData", "nameLocation": "11031:14:34", "nodeType": "FunctionDefinition", "parameters": {"id": 6240, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6237, "mutability": "mutable", "name": "_courseId", "nameLocation": "11054:9:34", "nodeType": "VariableDeclaration", "scope": 6252, "src": "11046:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6236, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "11046:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 6239, "mutability": "mutable", "name": "_learner", "nameLocation": "11073:8:34", "nodeType": "VariableDeclaration", "scope": 6252, "src": "11065:16:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6238, "name": "address", "nodeType": "ElementaryTypeName", "src": "11065:7:34", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "11045:37:34"}, "returnParameters": {"id": 6244, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6243, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 6252, "src": "11106:14:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_memory_ptr", "typeString": "struct Learner"}, "typeName": {"id": 6242, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6241, "name": "Learner", "nameLocations": ["11106:7:34"], "nodeType": "IdentifierPath", "referencedDeclaration": 8507, "src": "11106:7:34"}, "referencedDeclaration": 8507, "src": "11106:7:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Learner_$8507_storage_ptr", "typeString": "struct Learner"}}, "visibility": "internal"}], "src": "11105:16:34"}, "scope": 6300, "src": "11022:156:34", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"body": {"id": 6275, "nodeType": "Block", "src": "11453:102:34", "statements": [{"expression": {"arguments": [{"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 6263, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "11497:10:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 6264, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11497:12:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6266, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "11521:5:34", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 6267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "11527:6:34", "memberName": "number", "nodeType": "MemberAccess", "src": "11521:12:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"hexValue": "31", "id": 6268, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11536:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "11521:16:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 6265, "name": "blockhash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -5, "src": "11511:9:34", "typeDescriptions": {"typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) view returns (bytes32)"}}, "id": 6270, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11511:27:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 6271, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6255, "src": "11540:6:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 6261, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "11480:3:34", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 6262, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "11484:12:34", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "11480:16:34", "typeDescriptions": {"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)"}}, "id": 6272, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11480:67:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 6260, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "11470:9:34", "typeDescriptions": {"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)"}}, "id": 6273, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11470:78:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "functionReturnParameters": 6259, "id": 6274, "nodeType": "Return", "src": "11463:85:34"}]}, "documentation": {"id": 6253, "nodeType": "StructuredDocumentation", "src": "11229:151:34", "text": " @notice Generates unique id hash based on _msgSender() address and previous block hash.\n @param _nonce nonce\n @return Id"}, "id": 6276, "implemented": true, "kind": "function", "modifiers": [], "name": "_generateId", "nameLocation": "11394:11:34", "nodeType": "FunctionDefinition", "parameters": {"id": 6256, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6255, "mutability": "mutable", "name": "_nonce", "nameLocation": "11414:6:34", "nodeType": "VariableDeclaration", "scope": 6276, "src": "11406:14:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6254, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11406:7:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "11405:16:34"}, "returnParameters": {"id": 6259, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6258, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 6276, "src": "11444:7:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6257, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "11444:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "11443:9:34"}, "scope": 6300, "src": "11385:170:34", "stateMutability": "view", "virtual": false, "visibility": "private"}, {"body": {"id": 6298, "nodeType": "Block", "src": "11737:123:34", "statements": [{"expression": {"id": 6286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 6282, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6280, "src": "11747:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"hexValue": "30", "id": 6284, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11771:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 6283, "name": "_generateId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6276, "src": "11759:11:34", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) view returns (bytes32)"}}, "id": 6285, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11759:14:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "src": "11747:26:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "id": 6287, "nodeType": "ExpressionStatement", "src": "11747:26:34"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"id": 6289, "name": "courseData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5466, "src": "11791:10:34", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Course_$8497_storage_$", "typeString": "mapping(bytes32 => struct Course storage ref)"}}, "id": 6291, "indexExpression": {"id": 6290, "name": "_courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6280, "src": "11802:9:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11791:21:34", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage", "typeString": "struct Course storage ref"}}, "id": 6292, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "11813:11:34", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 8486, "src": "11791:33:34", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 6293, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11828:1:34", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "11791:38:34", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6475706c696361746520636f75727365206964", "id": 6295, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11831:21:34", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ab1a49f8d660033004bae5dfb805e335cddb5511c04548889cc825ab14a44bb3", "typeString": "literal_string \"duplicate course id\""}, "value": "duplicate course id"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_ab1a49f8d660033004bae5dfb805e335cddb5511c04548889cc825ab14a44bb3", "typeString": "literal_string \"duplicate course id\""}], "id": 6288, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "11783:7:34", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6296, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11783:70:34", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6297, "nodeType": "ExpressionStatement", "src": "11783:70:34"}]}, "documentation": {"id": 6277, "nodeType": "StructuredDocumentation", "src": "11561:101:34", "text": " @notice Returns a new unique course id.\n @return _courseId Id of the course."}, "id": 6299, "implemented": true, "kind": "function", "modifiers": [], "name": "_generateCourseId", "nameLocation": "11676:17:34", "nodeType": "FunctionDefinition", "parameters": {"id": 6278, "nodeType": "ParameterList", "parameters": [], "src": "11693:2:34"}, "returnParameters": {"id": 6281, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6280, "mutability": "mutable", "name": "_courseId", "nameLocation": "11726:9:34", "nodeType": "VariableDeclaration", "scope": 6299, "src": "11718:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6279, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "11718:7:34", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "11717:19:34"}, "scope": 6300, "src": "11667:193:34", "stateMutability": "view", "virtual": false, "visibility": "private"}], "scope": 6301, "src": "798:11064:34", "usedErrors": []}], "src": "32:11830:34"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/LearnToEarnTest.sol": {"AST": {"absolutePath": "contracts/LearnToEarnTest.sol", "exportedSymbols": {"Course": [8497], "ERC721Test": [5387], "LearnToEarn": [6300], "LearnToEarnTest": [6506]}, "id": 6507, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 6302, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:35"}, {"absolutePath": "contracts/LearnToEarn.sol", "file": "./LearnToEarn.sol", "id": 6305, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6507, "sourceUnit": 6301, "src": "56:56:35", "symbolAliases": [{"foreign": {"id": 6303, "name": "LearnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6300, "src": "65:11:35", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 6304, "name": "Course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8497, "src": "78:6:35", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/ERC721Test.sol", "file": "./ERC721Test.sol", "id": 6307, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6507, "sourceUnit": 5388, "src": "113:46:35", "symbolAliases": [{"foreign": {"id": 6306, "name": "ERC721Test", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5387, "src": "122:10:35", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [], "canonicalName": "LearnToEarnTest", "contractDependencies": [5387, 6300], "contractKind": "contract", "fullyImplemented": true, "id": 6506, "linearizedBaseContracts": [6506], "name": "LearnToEarnTest", "nameLocation": "170:15:35", "nodeType": "ContractDefinition", "nodes": [{"constant": false, "id": 6310, "mutability": "mutable", "name": "learnToEarn", "nameLocation": "204:11:35", "nodeType": "VariableDeclaration", "scope": 6506, "src": "192:23:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}, "typeName": {"id": 6309, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6308, "name": "LearnToEarn", "nameLocations": ["192:11:35"], "nodeType": "IdentifierPath", "referencedDeclaration": 6300, "src": "192:11:35"}, "referencedDeclaration": 6300, "src": "192:11:35", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}, "visibility": "internal"}, {"constant": false, "id": 6313, "mutability": "mutable", "name": "erc721Test", "nameLocation": "232:10:35", "nodeType": "VariableDeclaration", "scope": 6506, "src": "221:21:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_ERC721Test_$5387", "typeString": "contract ERC721Test"}, "typeName": {"id": 6312, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6311, "name": "ERC721Test", "nameLocations": ["221:10:35"], "nodeType": "IdentifierPath", "referencedDeclaration": 5387, "src": "221:10:35"}, "referencedDeclaration": 5387, "src": "221:10:35", "typeDescriptions": {"typeIdentifier": "t_contract$_ERC721Test_$5387", "typeString": "contract ERC721Test"}}, "visibility": "internal"}, {"body": {"id": 6337, "nodeType": "Block", "src": "263:145:35", "statements": [{"expression": {"id": 6321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 6316, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6310, "src": "273:11:35", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [], "expression": {"argumentTypes": [], "id": 6319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "287:15:35", "typeDescriptions": {"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_LearnToEarn_$6300_$", "typeString": "function () returns (contract LearnToEarn)"}, "typeName": {"id": 6318, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6317, "name": "LearnToEarn", "nameLocations": ["291:11:35"], "nodeType": "IdentifierPath", "referencedDeclaration": 6300, "src": "291:11:35"}, "referencedDeclaration": 6300, "src": "291:11:35", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}}, "id": 6320, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "287:17:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}, "src": "273:31:35", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}, "id": 6322, "nodeType": "ExpressionStatement", "src": "273:31:35"}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 6323, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6310, "src": "314:11:35", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}, "id": 6325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "326:10:35", "memberName": "initialize", "nodeType": "MemberAccess", "referencedDeclaration": 5535, "src": "314:22:35", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external"}}, "id": 6326, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "314:24:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6327, "nodeType": "ExpressionStatement", "src": "314:24:35"}, {"expression": {"id": 6335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 6328, "name": "erc721Test", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6313, "src": "349:10:35", "typeDescriptions": {"typeIdentifier": "t_contract$_ERC721Test_$5387", "typeString": "contract ERC721Test"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"hexValue": "4365727469666963617465", "id": 6332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "377:13:35", "typeDescriptions": {"typeIdentifier": "t_stringliteral_476b6a56e8793270a7635a828307eeb92cd7e2153dff9a3bd168aec20746ea55", "typeString": "literal_string \"Certificate\""}, "value": "Certificate"}, {"hexValue": "50494f4e4345", "id": 6333, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "392:8:35", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a81a74dcae7def8aa056ff54d6900a6018a883169e136e05b2a419e7f836f48f", "typeString": "literal_string \"PIONCE\""}, "value": "PIONCE"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_476b6a56e8793270a7635a828307eeb92cd7e2153dff9a3bd168aec20746ea55", "typeString": "literal_string \"Certificate\""}, {"typeIdentifier": "t_stringliteral_a81a74dcae7def8aa056ff54d6900a6018a883169e136e05b2a419e7f836f48f", "typeString": "literal_string \"PIONCE\""}], "id": 6331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "362:14:35", "typeDescriptions": {"typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_ERC721Test_$5387_$", "typeString": "function (string memory,string memory) returns (contract ERC721Test)"}, "typeName": {"id": 6330, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6329, "name": "ERC721Test", "nameLocations": ["366:10:35"], "nodeType": "IdentifierPath", "referencedDeclaration": 5387, "src": "366:10:35"}, "referencedDeclaration": 5387, "src": "366:10:35", "typeDescriptions": {"typeIdentifier": "t_contract$_ERC721Test_$5387", "typeString": "contract ERC721Test"}}}, "id": 6334, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "362:39:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_ERC721Test_$5387", "typeString": "contract ERC721Test"}}, "src": "349:52:35", "typeDescriptions": {"typeIdentifier": "t_contract$_ERC721Test_$5387", "typeString": "contract ERC721Test"}}, "id": 6336, "nodeType": "ExpressionStatement", "src": "349:52:35"}]}, "id": 6338, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": {"id": 6314, "nodeType": "ParameterList", "parameters": [], "src": "260:2:35"}, "returnParameters": {"id": 6315, "nodeType": "ParameterList", "parameters": [], "src": "263:0:35"}, "scope": 6506, "src": "249:159:35", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"body": {"id": 6360, "nodeType": "Block", "src": "482:100:35", "statements": [{"expression": {"arguments": [{"arguments": [{"expression": {"id": 6348, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "526:3:35", "typeDescriptions": {"typeIdentifier": "t_magic_message", "typeString": "msg"}}, "id": 6349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "530:6:35", "memberName": "sender", "nodeType": "MemberAccess", "src": "526:10:35", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6351, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "548:5:35", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 6352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "554:6:35", "memberName": "number", "nodeType": "MemberAccess", "src": "548:12:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"hexValue": "31", "id": 6353, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "563:1:35", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "548:16:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 6350, "name": "blockhash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -5, "src": "538:9:35", "typeDescriptions": {"typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) view returns (bytes32)"}}, "id": 6355, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "538:27:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 6356, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6340, "src": "567:6:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 6346, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "509:3:35", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 6347, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "513:12:35", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "509:16:35", "typeDescriptions": {"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)"}}, "id": 6357, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "509:65:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 6345, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "499:9:35", "typeDescriptions": {"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)"}}, "id": 6358, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "499:76:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "functionReturnParameters": 6344, "id": 6359, "nodeType": "Return", "src": "492:83:35"}]}, "id": 6361, "implemented": true, "kind": "function", "modifiers": [], "name": "_generateId", "nameLocation": "423:11:35", "nodeType": "FunctionDefinition", "parameters": {"id": 6341, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6340, "mutability": "mutable", "name": "_nonce", "nameLocation": "443:6:35", "nodeType": "VariableDeclaration", "scope": 6361, "src": "435:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6339, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "435:7:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "434:16:35"}, "returnParameters": {"id": 6344, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6343, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 6361, "src": "473:7:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6342, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "473:7:35", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "472:9:35"}, "scope": 6506, "src": "414:168:35", "stateMutability": "view", "virtual": false, "visibility": "private"}, {"body": {"id": 6504, "nodeType": "Block", "src": "624:1199:35", "statements": [{"assignments": [6365], "declarations": [{"constant": false, "id": 6365, "mutability": "mutable", "name": "rewardAddress", "nameLocation": "642:13:35", "nodeType": "VariableDeclaration", "scope": 6504, "src": "634:21:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6364, "name": "address", "nodeType": "ElementaryTypeName", "src": "634:7:35", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 6370, "initialValue": {"arguments": [{"hexValue": "307831", "id": 6368, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "666:3:35", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "0x1"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}], "id": 6367, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "658:7:35", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 6366, "name": "address", "nodeType": "ElementaryTypeName", "src": "658:7:35", "typeDescriptions": {}}}, "id": 6369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "658:12:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "634:36:35"}, {"assignments": [6372], "declarations": [{"constant": false, "id": 6372, "mutability": "mutable", "name": "budget", "nameLocation": "688:6:35", "nodeType": "VariableDeclaration", "scope": 6504, "src": "680:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6371, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "680:7:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6374, "initialValue": {"hexValue": "313030", "id": 6373, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "697:3:35", "typeDescriptions": {"typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100"}, "value": "100"}, "nodeType": "VariableDeclarationStatement", "src": "680:20:35"}, {"assignments": [6376], "declarations": [{"constant": false, "id": 6376, "mutability": "mutable", "name": "bonus", "nameLocation": "718:5:35", "nodeType": "VariableDeclaration", "scope": 6504, "src": "710:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6375, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "710:7:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6378, "initialValue": {"hexValue": "3130", "id": 6377, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "726:2:35", "typeDescriptions": {"typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10"}, "value": "10"}, "nodeType": "VariableDeclarationStatement", "src": "710:18:35"}, {"assignments": [6380], "declarations": [{"constant": false, "id": 6380, "mutability": "mutable", "name": "timeStart", "nameLocation": "746:9:35", "nodeType": "VariableDeclaration", "scope": 6504, "src": "738:17:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6379, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "738:7:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6383, "initialValue": {"expression": {"id": 6381, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "758:5:35", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 6382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "764:9:35", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "758:15:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "738:35:35"}, {"assignments": [6385], "declarations": [{"constant": false, "id": 6385, "mutability": "mutable", "name": "timeEndBonus", "nameLocation": "791:12:35", "nodeType": "VariableDeclaration", "scope": 6504, "src": "783:20:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6384, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "783:7:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6389, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6388, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6386, "name": "timeStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6380, "src": "806:9:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"hexValue": "31", "id": 6387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "818:6:35", "subdenomination": "days", "typeDescriptions": {"typeIdentifier": "t_rational_86400_by_1", "typeString": "int_const 86400"}, "value": "1"}, "src": "806:18:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "783:41:35"}, {"assignments": [6391], "declarations": [{"constant": false, "id": 6391, "mutability": "mutable", "name": "isUsingDuration", "nameLocation": "839:15:35", "nodeType": "VariableDeclaration", "scope": 6504, "src": "834:20:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 6390, "name": "bool", "nodeType": "ElementaryTypeName", "src": "834:4:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "id": 6393, "initialValue": {"hexValue": "74727565", "id": 6392, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "857:4:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "nodeType": "VariableDeclarationStatement", "src": "834:27:35"}, {"assignments": [6395], "declarations": [{"constant": false, "id": 6395, "mutability": "mutable", "name": "isBonusToken", "nameLocation": "876:12:35", "nodeType": "VariableDeclaration", "scope": 6504, "src": "871:17:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 6394, "name": "bool", "nodeType": "ElementaryTypeName", "src": "871:4:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "id": 6397, "initialValue": {"hexValue": "74727565", "id": 6396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "891:4:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "nodeType": "VariableDeclarationStatement", "src": "871:24:35"}, {"expression": {"arguments": [{"id": 6401, "name": "rewardAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6365, "src": "944:13:35", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6402, "name": "budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6372, "src": "971:6:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 6403, "name": "bonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6376, "src": "991:5:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 6404, "name": "timeStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6380, "src": "1010:9:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 6405, "name": "timeEndBonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6385, "src": "1033:12:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 6406, "name": "isUsingDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6391, "src": "1059:15:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 6407, "name": "isBonusToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6395, "src": "1088:12:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 6398, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6310, "src": "906:11:35", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}, "id": 6400, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "918:12:35", "memberName": "createCourse", "nodeType": "MemberAccess", "referencedDeclaration": 5714, "src": "906:24:35", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_bool_$returns$__$", "typeString": "function (address,uint256,uint256,uint256,uint256,bool,bool) external"}}, "id": 6408, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "906:204:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6409, "nodeType": "ExpressionStatement", "src": "906:204:35"}, {"assignments": [6411], "declarations": [{"constant": false, "id": 6411, "mutability": "mutable", "name": "courseId", "nameLocation": "1129:8:35", "nodeType": "VariableDeclaration", "scope": 6504, "src": "1121:16:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6410, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1121:7:35", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "id": 6415, "initialValue": {"arguments": [{"hexValue": "30", "id": 6413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1152:1:35", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 6412, "name": "_generateId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6361, "src": "1140:11:35", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) view returns (bytes32)"}}, "id": 6414, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1140:14:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "VariableDeclarationStatement", "src": "1121:33:35"}, {"assignments": [6418], "declarations": [{"constant": false, "id": 6418, "mutability": "mutable", "name": "course", "nameLocation": "1239:6:35", "nodeType": "VariableDeclaration", "scope": 6504, "src": "1225:20:35", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course"}, "typeName": {"id": 6417, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6416, "name": "Course", "nameLocations": ["1225:6:35"], "nodeType": "IdentifierPath", "referencedDeclaration": 8497, "src": "1225:6:35"}, "referencedDeclaration": 8497, "src": "1225:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_storage_ptr", "typeString": "struct Course"}}, "visibility": "internal"}], "id": 6423, "initialValue": {"arguments": [{"id": 6421, "name": "courseId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6411, "src": "1274:8:35", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}], "expression": {"id": 6419, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6310, "src": "1248:11:35", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarn_$6300", "typeString": "contract LearnToEarn"}}, "id": 6420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1260:13:35", "memberName": "getCourseData", "nodeType": "MemberAccess", "referencedDeclaration": 6234, "src": "1248:25:35", "typeDescriptions": {"typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Course_$8497_memory_ptr_$", "typeString": "function (bytes32) view external returns (struct Course memory)"}}, "id": 6422, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1248:35:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "nodeType": "VariableDeclarationStatement", "src": "1225:58:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 6431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6425, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1300:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6426, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1307:7:35", "memberName": "creator", "nodeType": "MemberAccess", "referencedDeclaration": 8474, "src": "1300:14:35", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"arguments": [{"id": 6429, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "1326:4:35", "typeDescriptions": {"typeIdentifier": "t_contract$_LearnToEarnTest_$6506", "typeString": "contract LearnToEarnTest"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_LearnToEarnTest_$6506", "typeString": "contract LearnToEarnTest"}], "id": 6428, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1318:7:35", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 6427, "name": "address", "nodeType": "ElementaryTypeName", "src": "1318:7:35", "typeDescriptions": {}}}, "id": 6430, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1318:13:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1300:31:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6424, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1293:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6432, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1293:39:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6433, "nodeType": "ExpressionStatement", "src": "1293:39:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 6438, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6435, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1349:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6436, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1356:13:35", "memberName": "rewardAddress", "nodeType": "MemberAccess", "referencedDeclaration": 8476, "src": "1349:20:35", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 6437, "name": "rewardAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6365, "src": "1373:13:35", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1349:37:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6434, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1342:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6439, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1342:45:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6440, "nodeType": "ExpressionStatement", "src": "1342:45:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6442, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1404:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6443, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1411:6:35", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 8478, "src": "1404:13:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 6444, "name": "budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6372, "src": "1421:6:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1404:23:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6441, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1397:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6446, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1397:31:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6447, "nodeType": "ExpressionStatement", "src": "1397:31:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6449, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1445:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6450, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1452:15:35", "memberName": "budgetAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 8480, "src": "1445:22:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 6451, "name": "budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6372, "src": "1471:6:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1445:32:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6448, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1438:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6453, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1438:40:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6454, "nodeType": "ExpressionStatement", "src": "1438:40:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6456, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1495:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6457, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1502:5:35", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 8482, "src": "1495:12:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 6458, "name": "bonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6376, "src": "1511:5:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1495:21:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6455, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1488:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6460, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1488:29:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6461, "nodeType": "ExpressionStatement", "src": "1488:29:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6463, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1534:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6464, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1541:11:35", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 8486, "src": "1534:18:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 6465, "name": "timeStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6380, "src": "1556:9:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1534:31:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6462, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1527:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6467, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1527:39:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6468, "nodeType": "ExpressionStatement", "src": "1527:39:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6470, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1583:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6471, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1590:12:35", "memberName": "timeEndBonus", "nodeType": "MemberAccess", "referencedDeclaration": 8488, "src": "1583:19:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 6472, "name": "timeEndBonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6385, "src": "1606:12:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1583:35:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6469, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1576:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6474, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1576:43:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6475, "nodeType": "ExpressionStatement", "src": "1576:43:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6477, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1636:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6478, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1643:11:35", "memberName": "timeRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 8490, "src": "1636:18:35", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 6479, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1658:1:35", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1636:23:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6476, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1629:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6481, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1629:31:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6482, "nodeType": "ExpressionStatement", "src": "1629:31:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 6487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6484, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1677:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6485, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1684:15:35", "memberName": "isUsingDuration", "nodeType": "MemberAccess", "referencedDeclaration": 8496, "src": "1677:22:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 6486, "name": "isUsingDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6391, "src": "1703:15:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "1677:41:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6483, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1670:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6488, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1670:49:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6489, "nodeType": "ExpressionStatement", "src": "1670:49:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 6494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6491, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1736:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6492, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1743:12:35", "memberName": "isBonusToken", "nodeType": "MemberAccess", "referencedDeclaration": 8492, "src": "1736:19:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 6493, "name": "isBonusToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6395, "src": "1759:12:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "1736:35:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6490, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1729:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6495, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1729:43:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6496, "nodeType": "ExpressionStatement", "src": "1729:43:35"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 6501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 6498, "name": "course", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6418, "src": "1789:6:35", "typeDescriptions": {"typeIdentifier": "t_struct$_Course_$8497_memory_ptr", "typeString": "struct Course memory"}}, "id": 6499, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1796:10:35", "memberName": "canMintNFT", "nodeType": "MemberAccess", "referencedDeclaration": 8494, "src": "1789:17:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "66616c7365", "id": 6500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1810:5:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "src": "1789:26:35", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6497, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "1782:6:35", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6502, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1782:34:35", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6503, "nodeType": "ExpressionStatement", "src": "1782:34:35"}]}, "functionSelector": "e22387d3", "id": 6505, "implemented": true, "kind": "function", "modifiers": [], "name": "test_createCourse", "nameLocation": "597:17:35", "nodeType": "FunctionDefinition", "parameters": {"id": 6362, "nodeType": "ParameterList", "parameters": [], "src": "614:2:35"}, "returnParameters": {"id": 6363, "nodeType": "ParameterList", "parameters": [], "src": "624:0:35"}, "scope": 6506, "src": "588:1235:35", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}], "scope": 6507, "src": "161:1664:35", "usedErrors": []}], "src": "32:1793:35"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/MyContract.sol": {"AST": {"absolutePath": "contracts/MyContract.sol", "exportedSymbols": {"MyContract": [6524], "MyContractTest": [6577], "console": [18025]}, "id": 6578, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 6508, "literals": ["solidity", "^", "0.8", ".0"], "nodeType": "PragmaDirective", "src": "32:23:36"}, {"absolutePath": "hardhat/console.sol", "file": "hardhat/console.sol", "id": 6509, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6578, "sourceUnit": 18026, "src": "57:29:36", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [], "canonicalName": "MyContract", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 6524, "linearizedBaseContracts": [6524], "name": "MyContract", "nameLocation": "97:10:36", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 6522, "nodeType": "Block", "src": "185:43:36", "statements": [{"expression": {"arguments": [{"id": 6519, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6513, "src": "214:6:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 6516, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6511, "src": "195:9:36", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "id": 6518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "205:8:36", "memberName": "transfer", "nodeType": "MemberAccess", "src": "195:18:36", "typeDescriptions": {"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)"}}, "id": 6520, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "195:26:36", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6521, "nodeType": "ExpressionStatement", "src": "195:26:36"}]}, "functionSelector": "6f64234e", "id": 6523, "implemented": true, "kind": "function", "modifiers": [], "name": "sendFunds", "nameLocation": "123:9:36", "nodeType": "FunctionDefinition", "parameters": {"id": 6514, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6511, "mutability": "mutable", "name": "recipient", "nameLocation": "149:9:36", "nodeType": "VariableDeclaration", "scope": 6523, "src": "133:25:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}, "typeName": {"id": 6510, "name": "address", "nodeType": "ElementaryTypeName", "src": "133:15:36", "stateMutability": "payable", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "visibility": "internal"}, {"constant": false, "id": 6513, "mutability": "mutable", "name": "amount", "nameLocation": "168:6:36", "nodeType": "VariableDeclaration", "scope": 6523, "src": "160:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6512, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "160:7:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "132:43:36"}, "returnParameters": {"id": 6515, "nodeType": "ParameterList", "parameters": [], "src": "185:0:36"}, "scope": 6524, "src": "114:114:36", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 6578, "src": "88:142:36", "usedErrors": []}, {"abstract": false, "baseContracts": [], "canonicalName": "MyContractTest", "contractDependencies": [6524], "contractKind": "contract", "fullyImplemented": true, "id": 6577, "linearizedBaseContracts": [6577], "name": "MyContractTest", "nameLocation": "258:14:36", "nodeType": "ContractDefinition", "nodes": [{"constant": false, "id": 6527, "mutability": "mutable", "name": "myContract", "nameLocation": "298:10:36", "nodeType": "VariableDeclaration", "scope": 6577, "src": "279:29:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_MyContract_$6524", "typeString": "contract MyContract"}, "typeName": {"id": 6526, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6525, "name": "MyContract", "nameLocations": ["279:10:36"], "nodeType": "IdentifierPath", "referencedDeclaration": 6524, "src": "279:10:36"}, "referencedDeclaration": 6524, "src": "279:10:36", "typeDescriptions": {"typeIdentifier": "t_contract$_MyContract_$6524", "typeString": "contract MyContract"}}, "visibility": "private"}, {"body": {"id": 6537, "nodeType": "Block", "src": "339:46:36", "statements": [{"expression": {"id": 6535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 6530, "name": "myContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6527, "src": "349:10:36", "typeDescriptions": {"typeIdentifier": "t_contract$_MyContract_$6524", "typeString": "contract MyContract"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [], "expression": {"argumentTypes": [], "id": 6533, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "362:14:36", "typeDescriptions": {"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_MyContract_$6524_$", "typeString": "function () returns (contract MyContract)"}, "typeName": {"id": 6532, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6531, "name": "MyContract", "nameLocations": ["366:10:36"], "nodeType": "IdentifierPath", "referencedDeclaration": 6524, "src": "366:10:36"}, "referencedDeclaration": 6524, "src": "366:10:36", "typeDescriptions": {"typeIdentifier": "t_contract$_MyContract_$6524", "typeString": "contract MyContract"}}}, "id": 6534, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "362:16:36", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_MyContract_$6524", "typeString": "contract MyContract"}}, "src": "349:29:36", "typeDescriptions": {"typeIdentifier": "t_contract$_MyContract_$6524", "typeString": "contract MyContract"}}, "id": 6536, "nodeType": "ExpressionStatement", "src": "349:29:36"}]}, "functionSelector": "0a9254e4", "id": 6538, "implemented": true, "kind": "function", "modifiers": [], "name": "setUp", "nameLocation": "324:5:36", "nodeType": "FunctionDefinition", "parameters": {"id": 6528, "nodeType": "ParameterList", "parameters": [], "src": "329:2:36"}, "returnParameters": {"id": 6529, "nodeType": "ParameterList", "parameters": [], "src": "339:0:36"}, "scope": 6577, "src": "315:70:36", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"body": {"id": 6575, "nodeType": "Block", "src": "423:406:36", "statements": [{"assignments": [6542], "declarations": [{"constant": false, "id": 6542, "mutability": "mutable", "name": "recipient", "nameLocation": "449:9:36", "nodeType": "VariableDeclaration", "scope": 6575, "src": "433:25:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}, "typeName": {"id": 6541, "name": "address", "nodeType": "ElementaryTypeName", "src": "433:15:36", "stateMutability": "payable", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "visibility": "internal"}], "id": 6547, "initialValue": {"arguments": [{"hexValue": "307837374236646462413641664231413734393739303131613037643037384265323866386246383335", "id": 6545, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "469:42:36", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "value": "0x77B6ddbA6AfB1A74979011a07d078Be28f8bF835"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 6544, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "461:8:36", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)"}, "typeName": {"id": 6543, "name": "address", "nodeType": "ElementaryTypeName", "src": "461:8:36", "stateMutability": "payable", "typeDescriptions": {}}}, "id": 6546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "461:51:36", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "nodeType": "VariableDeclarationStatement", "src": "433:79:36"}, {"assignments": [6549], "declarations": [{"constant": false, "id": 6549, "mutability": "mutable", "name": "amount", "nameLocation": "530:6:36", "nodeType": "VariableDeclaration", "scope": 6575, "src": "522:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6548, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "522:7:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6551, "initialValue": {"hexValue": "31", "id": 6550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "539:7:36", "subdenomination": "ether", "typeDescriptions": {"typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000"}, "value": "1"}, "nodeType": "VariableDeclarationStatement", "src": "522:24:36"}, {"assignments": [6553], "declarations": [{"constant": false, "id": 6553, "mutability": "mutable", "name": "balanceBefore", "nameLocation": "565:13:36", "nodeType": "VariableDeclaration", "scope": 6575, "src": "557:21:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6552, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "557:7:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6556, "initialValue": {"expression": {"id": 6554, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6542, "src": "581:9:36", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "id": 6555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "591:7:36", "memberName": "balance", "nodeType": "MemberAccess", "src": "581:17:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "557:41:36"}, {"expression": {"arguments": [{"id": 6560, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6542, "src": "629:9:36", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, {"id": 6561, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6549, "src": "640:6:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address_payable", "typeString": "address payable"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 6557, "name": "myContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6527, "src": "608:10:36", "typeDescriptions": {"typeIdentifier": "t_contract$_MyContract_$6524", "typeString": "contract MyContract"}}, "id": 6559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "619:9:36", "memberName": "sendFunds", "nodeType": "MemberAccess", "referencedDeclaration": 6523, "src": "608:20:36", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_uint256_$returns$__$", "typeString": "function (address payable,uint256) external"}}, "id": 6562, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "608:39:36", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6563, "nodeType": "ExpressionStatement", "src": "608:39:36"}, {"assignments": [6565], "declarations": [{"constant": false, "id": 6565, "mutability": "mutable", "name": "balanceAfter", "nameLocation": "665:12:36", "nodeType": "VariableDeclaration", "scope": 6575, "src": "657:20:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6564, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "657:7:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6568, "initialValue": {"expression": {"id": 6566, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6542, "src": "680:9:36", "typeDescriptions": {"typeIdentifier": "t_address_payable", "typeString": "address payable"}}, "id": 6567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "690:7:36", "memberName": "balance", "nodeType": "MemberAccess", "src": "680:17:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "657:40:36"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6570, "name": "balanceAfter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6565, "src": "793:12:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"id": 6571, "name": "balanceBefore", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6553, "src": "808:13:36", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "793:28:36", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}], "id": 6569, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, "src": "786:6:36", "typeDescriptions": {"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure"}}, "id": 6573, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "786:36:36", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6574, "nodeType": "ExpressionStatement", "src": "786:36:36"}]}, "functionSelector": "1d8979a5", "id": 6576, "implemented": true, "kind": "function", "modifiers": [], "name": "testSendFunds", "nameLocation": "400:13:36", "nodeType": "FunctionDefinition", "parameters": {"id": 6539, "nodeType": "ParameterList", "parameters": [], "src": "413:2:36"}, "returnParameters": {"id": 6540, "nodeType": "ParameterList", "parameters": [], "src": "423:0:36"}, "scope": 6577, "src": "391:438:36", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}], "scope": 6578, "src": "249:582:36", "usedErrors": []}], "src": "32:799:36"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/NFTReward.sol": {"AST": {"absolutePath": "contracts/NFTReward.sol", "exportedSymbols": {"ERC721URIStorageUpgradeable": [1907], "ERC721Upgradeable": [1628], "IERC165Upgradeable": [2695], "IERC721Upgradeable": [1762], "INFTReward": [8641], "NFTReward": [6701]}, "id": 6702, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 6579, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:37"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol", "id": 6584, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6702, "sourceUnit": 1908, "src": "56:197:37", "symbolAliases": [{"foreign": {"id": 6580, "name": "IERC165Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2695, "src": "65:18:37", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 6581, "name": "IERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, "src": "85:18:37", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 6582, "name": "ERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1628, "src": "105:17:37", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 6583, "name": "ERC721URIStorageUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1907, "src": "124:27:37", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/interfaces/INFTReward.sol", "file": "./interfaces/INFTReward.sol", "id": 6586, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 6702, "sourceUnit": 8642, "src": "254:57:37", "symbolAliases": [{"foreign": {"id": 6585, "name": "INFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8641, "src": "263:10:37", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 6588, "name": "ERC721URIStorageUpgradeable", "nameLocations": ["400:27:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 1907, "src": "400:27:37"}, "id": 6589, "nodeType": "InheritanceSpecifier", "src": "400:27:37"}, {"baseName": {"id": 6590, "name": "INFTReward", "nameLocations": ["429:10:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 8641, "src": "429:10:37"}, "id": 6591, "nodeType": "InheritanceSpecifier", "src": "429:10:37"}], "canonicalName": "NFTReward", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 6587, "nodeType": "StructuredDocumentation", "src": "313:63:37", "text": " @title NFTReward Contract\n @author ReBaked Team"}, "fullyImplemented": true, "id": 6701, "linearizedBaseContracts": [6701, 8641, 1907, 1628, 1934, 1762, 2683, 2695, 2219, 282], "name": "NFTReward", "nameLocation": "387:9:37", "nodeType": "ContractDefinition", "nodes": [{"constant": false, "documentation": {"id": 6592, "nodeType": "StructuredDocumentation", "src": "446:58:37", "text": " @notice Address of LearnToEarn contract"}, "functionSelector": "a4e8aaae", "id": 6594, "mutability": "mutable", "name": "learnToEarn", "nameLocation": "524:11:37", "nodeType": "VariableDeclaration", "scope": 6701, "src": "509:26:37", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6593, "name": "address", "nodeType": "ElementaryTypeName", "src": "509:7:37", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "public"}, {"constant": false, "documentation": {"id": 6595, "nodeType": "StructuredDocumentation", "src": "542:58:37", "text": " @notice ID of Minted NFT, increase by 1"}, "functionSelector": "714cff56", "id": 6597, "mutability": "mutable", "name": "tokenIds", "nameLocation": "620:8:37", "nodeType": "VariableDeclaration", "scope": 6701, "src": "605:23:37", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6596, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "605:7:37", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "public"}, {"constant": false, "documentation": {"id": 6598, "nodeType": "StructuredDocumentation", "src": "635:76:37", "text": " notice URI of NFT, NFTs in same contract has the same URI"}, "functionSelector": "eac989f8", "id": 6600, "mutability": "mutable", "name": "uri", "nameLocation": "730:3:37", "nodeType": "VariableDeclaration", "scope": 6701, "src": "716:17:37", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string"}, "typeName": {"id": 6599, "name": "string", "nodeType": "ElementaryTypeName", "src": "716:6:37", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "public"}, {"baseFunctions": [8640], "body": {"id": 6637, "nodeType": "Block", "src": "1124:184:37", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 6620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6615, "name": "_learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6603, "src": "1142:12:37", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 6618, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1166:1:37", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 6617, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1158:7:37", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 6616, "name": "address", "nodeType": "ElementaryTypeName", "src": "1158:7:37", "typeDescriptions": {}}}, "id": 6619, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1158:10:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1142:26:37", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4c6561726e546f4561726e2061646472657373206973206e6f742076616c6964", "id": 6621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1170:34:37", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e45ddec8cf1d5d9cee2b8ead83e3387b5c6f4942841363d86bcd1848a75adc94", "typeString": "literal_string \"LearnToEarn address is not valid\""}, "value": "LearnToEarn address is not valid"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_e45ddec8cf1d5d9cee2b8ead83e3387b5c6f4942841363d86bcd1848a75adc94", "typeString": "literal_string \"LearnToEarn address is not valid\""}], "id": 6614, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1134:7:37", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6622, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1134:71:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6623, "nodeType": "ExpressionStatement", "src": "1134:71:37"}, {"expression": {"arguments": [{"id": 6625, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6605, "src": "1229:5:37", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 6626, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6607, "src": "1236:7:37", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 6624, "name": "__ERC721_init", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 801, "src": "1215:13:37", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)"}}, "id": 6627, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1215:29:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6628, "nodeType": "ExpressionStatement", "src": "1215:29:37"}, {"expression": {"id": 6631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 6629, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6594, "src": "1255:11:37", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 6630, "name": "_learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6603, "src": "1269:12:37", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1255:26:37", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 6632, "nodeType": "ExpressionStatement", "src": "1255:26:37"}, {"expression": {"id": 6635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 6633, "name": "uri", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6600, "src": "1291:3:37", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 6634, "name": "_uri", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6609, "src": "1297:4:37", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, "src": "1291:10:37", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}, "id": 6636, "nodeType": "ExpressionStatement", "src": "1291:10:37"}]}, "documentation": {"id": 6601, "nodeType": "StructuredDocumentation", "src": "784:210:37", "text": " @notice Replace for contructor\n @param _learnToEarn Address of LearnToEarn contract\n @param _name Name of NFTs\n @param _symbol Symbol of NFTs\n @param _uri ipfs of NFTs"}, "functionSelector": "5f1e6f6d", "id": 6638, "implemented": true, "kind": "function", "modifiers": [{"id": 6612, "kind": "modifierInvocation", "modifierName": {"id": 6611, "name": "initializer", "nameLocations": ["1112:11:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 202, "src": "1112:11:37"}, "nodeType": "ModifierInvocation", "src": "1112:11:37"}], "name": "initialize", "nameLocation": "1008:10:37", "nodeType": "FunctionDefinition", "parameters": {"id": 6610, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6603, "mutability": "mutable", "name": "_learnToEarn", "nameLocation": "1027:12:37", "nodeType": "VariableDeclaration", "scope": 6638, "src": "1019:20:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6602, "name": "address", "nodeType": "ElementaryTypeName", "src": "1019:7:37", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 6605, "mutability": "mutable", "name": "_name", "nameLocation": "1055:5:37", "nodeType": "VariableDeclaration", "scope": 6638, "src": "1041:19:37", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 6604, "name": "string", "nodeType": "ElementaryTypeName", "src": "1041:6:37", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 6607, "mutability": "mutable", "name": "_symbol", "nameLocation": "1076:7:37", "nodeType": "VariableDeclaration", "scope": 6638, "src": "1062:21:37", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 6606, "name": "string", "nodeType": "ElementaryTypeName", "src": "1062:6:37", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 6609, "mutability": "mutable", "name": "_uri", "nameLocation": "1099:4:37", "nodeType": "VariableDeclaration", "scope": 6638, "src": "1085:18:37", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 6608, "name": "string", "nodeType": "ElementaryTypeName", "src": "1085:6:37", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1018:86:37"}, "returnParameters": {"id": 6613, "nodeType": "ParameterList", "parameters": [], "src": "1124:0:37"}, "scope": 6701, "src": "999:309:37", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"baseFunctions": [8628], "body": {"id": 6675, "nodeType": "Block", "src": "1548:240:37", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 6650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 6647, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "1566:10:37", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 6648, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1566:12:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 6649, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6594, "src": "1582:11:37", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1566:27:37", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "43616c6c6572206973206e6f74206c6561726e546f4561726e", "id": 6651, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1595:27:37", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2789fa1d668a0bb6f9e04b731f45b4dd9451bc63fb253cfdd4ce054cee6574b0", "typeString": "literal_string \"Caller is not learnToEarn\""}, "value": "Caller is not learnToEarn"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_2789fa1d668a0bb6f9e04b731f45b4dd9451bc63fb253cfdd4ce054cee6574b0", "typeString": "literal_string \"Caller is not learnToEarn\""}], "id": 6646, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1558:7:37", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6652, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1558:65:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6653, "nodeType": "ExpressionStatement", "src": "1558:65:37"}, {"expression": {"id": 6655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "1633:10:37", "subExpression": {"id": 6654, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6597, "src": "1635:8:37", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 6656, "nodeType": "ExpressionStatement", "src": "1633:10:37"}, {"expression": {"arguments": [{"id": 6658, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6641, "src": "1663:3:37", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6659, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6597, "src": "1668:8:37", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 6657, "name": "_safeMint", "nodeType": "Identifier", "overloadedDeclarations": [1238, 1267], "referencedDeclaration": 1238, "src": "1653:9:37", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 6660, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1653:24:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6661, "nodeType": "ExpressionStatement", "src": "1653:24:37"}, {"expression": {"arguments": [{"id": 6663, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6597, "src": "1700:8:37", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 6664, "name": "uri", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6600, "src": "1710:3:37", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}], "id": 6662, "name": "_setTokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1871, "src": "1687:12:37", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)"}}, "id": 6665, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1687:27:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6666, "nodeType": "ExpressionStatement", "src": "1687:27:37"}, {"eventCall": {"arguments": [{"id": 6668, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6641, "src": "1737:3:37", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6669, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6597, "src": "1742:8:37", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 6670, "name": "uri", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6600, "src": "1752:3:37", "typeDescriptions": {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_storage", "typeString": "string storage ref"}], "id": 6667, "name": "Minted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8620, "src": "1730:6:37", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,uint256,string memory)"}}, "id": 6671, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1730:26:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6672, "nodeType": "EmitStatement", "src": "1725:31:37"}, {"expression": {"id": 6673, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6597, "src": "1773:8:37", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 6645, "id": 6674, "nodeType": "Return", "src": "1766:15:37"}]}, "documentation": {"id": 6639, "nodeType": "StructuredDocumentation", "src": "1366:124:37", "text": " @notice mint a NFT for _to address\n @param _to address of user\n emit { Minted } events"}, "functionSelector": "6a627842", "id": 6676, "implemented": true, "kind": "function", "modifiers": [], "name": "mint", "nameLocation": "1504:4:37", "nodeType": "FunctionDefinition", "parameters": {"id": 6642, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6641, "mutability": "mutable", "name": "_to", "nameLocation": "1517:3:37", "nodeType": "VariableDeclaration", "scope": 6676, "src": "1509:11:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6640, "name": "address", "nodeType": "ElementaryTypeName", "src": "1509:7:37", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1508:13:37"}, "returnParameters": {"id": 6645, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6644, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 6676, "src": "1539:7:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6643, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1539:7:37", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1538:9:37"}, "scope": 6701, "src": "1495:293:37", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [850, 2694], "body": {"id": 6699, "nodeType": "Block", "src": "2152:107:37", "statements": [{"expression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 6697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "id": 6692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6687, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6679, "src": "2169:11:37", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"arguments": [{"id": 6689, "name": "INFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8641, "src": "2189:10:37", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_INFTReward_$8641_$", "typeString": "type(contract INFTReward)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_INFTReward_$8641_$", "typeString": "type(contract INFTReward)"}], "id": 6688, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "2184:4:37", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 6690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2184:16:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_INFTReward_$8641", "typeString": "type(contract INFTReward)"}}, "id": 6691, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2201:11:37", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "2184:28:37", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "src": "2169:43:37", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"arguments": [{"id": 6695, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6679, "src": "2240:11:37", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "expression": {"id": 6693, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "2216:5:37", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_NFTReward_$6701_$", "typeString": "type(contract super NFTReward)"}}, "id": 6694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2222:17:37", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 850, "src": "2216:23:37", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) view returns (bool)"}}, "id": 6696, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2216:36:37", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "2169:83:37", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 6686, "id": 6698, "nodeType": "Return", "src": "2162:90:37"}]}, "documentation": {"id": 6677, "nodeType": "StructuredDocumentation", "src": "1842:175:37", "text": " @notice Override function `supportsInterface` when using ERC165\n @dev Returns true if this contract implements the interface defined by `interfaceId`."}, "functionSelector": "01ffc9a7", "id": 6700, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "2031:17:37", "nodeType": "FunctionDefinition", "overrides": {"id": 6683, "nodeType": "OverrideSpecifier", "overrides": [{"id": 6681, "name": "IERC165Upgradeable", "nameLocations": ["2098:18:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 2695, "src": "2098:18:37"}, {"id": 6682, "name": "ERC721Upgradeable", "nameLocations": ["2118:17:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 1628, "src": "2118:17:37"}], "src": "2089:47:37"}, "parameters": {"id": 6680, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6679, "mutability": "mutable", "name": "interfaceId", "nameLocation": "2056:11:37", "nodeType": "VariableDeclaration", "scope": 6700, "src": "2049:18:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 6678, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2049:6:37", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "2048:20:37"}, "returnParameters": {"id": 6686, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6685, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 6700, "src": "2146:4:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 6684, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2146:4:37", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "2145:6:37"}, "scope": 6701, "src": "2022:237:37", "stateMutability": "view", "virtual": true, "visibility": "public"}], "scope": 6702, "src": "378:1883:37", "usedErrors": []}], "src": "32:2230:37"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/ReBakedDAO.sol": {"AST": {"absolutePath": "contracts/ReBakedDAO.sol", "exportedSymbols": {"Collaborator": [9954], "CollaboratorLibrary": [9112], "IERC20Upgradeable": [419], "IReBakedDAO": [8916], "Observer": [9961], "ObserverLibrary": [9203], "OwnableUpgradeable": [131], "Package": [9939], "PackageLibrary": [9645], "Project": [9906], "ProjectLibrary": [9885], "ReBakedDAO": [8288], "ReentrancyGuardUpgradeable": [341], "SafeERC20Upgradeable": [736]}, "id": 8289, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 6703, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:38"}, {"absolutePath": "contracts/interfaces/IReBakedDAO.sol", "file": "./interfaces/IReBakedDAO.sol", "id": 6705, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8289, "sourceUnit": 8917, "src": "56:59:38", "symbolAliases": [{"foreign": {"id": 6704, "name": "IReBakedDAO", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8916, "src": "65:11:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "id": 6707, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8289, "sourceUnit": 132, "src": "116:103:38", "symbolAliases": [{"foreign": {"id": 6706, "name": "OwnableUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 131, "src": "125:18:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "id": 6709, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8289, "sourceUnit": 342, "src": "220:121:38", "symbolAliases": [{"foreign": {"id": 6708, "name": "ReentrancyGuardUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 341, "src": "229:26:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", "id": 6712, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8289, "sourceUnit": 737, "src": "342:137:38", "symbolAliases": [{"foreign": {"id": 6710, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "351:17:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 6711, "name": "SafeERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 736, "src": "370:20:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/libraries/ProjectLibrary.sol", "file": "./libraries/ProjectLibrary.sol", "id": 6715, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8289, "sourceUnit": 9886, "src": "480:73:38", "symbolAliases": [{"foreign": {"id": 6713, "name": "Project", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9906, "src": "489:7:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 6714, "name": "ProjectLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9885, "src": "498:14:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/libraries/PackageLibrary.sol", "file": "./libraries/PackageLibrary.sol", "id": 6718, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8289, "sourceUnit": 9646, "src": "554:73:38", "symbolAliases": [{"foreign": {"id": 6716, "name": "Package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9939, "src": "563:7:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 6717, "name": "PackageLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9645, "src": "572:14:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/libraries/CollaboratorLibrary.sol", "file": "./libraries/CollaboratorLibrary.sol", "id": 6721, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8289, "sourceUnit": 9113, "src": "628:88:38", "symbolAliases": [{"foreign": {"id": 6719, "name": "Collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9954, "src": "637:12:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 6720, "name": "CollaboratorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9112, "src": "651:19:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/libraries/ObserverLibrary.sol", "file": "./libraries/ObserverLibrary.sol", "id": 6724, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8289, "sourceUnit": 9204, "src": "717:76:38", "symbolAliases": [{"foreign": {"id": 6722, "name": "Observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9961, "src": "726:8:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 6723, "name": "ObserverLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9203, "src": "736:15:38", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 6726, "name": "IReBakedDAO", "nameLocations": ["883:11:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 8916, "src": "883:11:38"}, "id": 6727, "nodeType": "InheritanceSpecifier", "src": "883:11:38"}, {"baseName": {"id": 6728, "name": "OwnableUpgradeable", "nameLocations": ["896:18:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 131, "src": "896:18:38"}, "id": 6729, "nodeType": "InheritanceSpecifier", "src": "896:18:38"}, {"baseName": {"id": 6730, "name": "ReentrancyGuardUpgradeable", "nameLocations": ["916:26:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 341, "src": "916:26:38"}, "id": 6731, "nodeType": "InheritanceSpecifier", "src": "916:26:38"}], "canonicalName": "ReBakedDAO", "contractDependencies": [], "contractKind": "contract", "documentation": {"id": 6725, "nodeType": "StructuredDocumentation", "src": "795:64:38", "text": " @title ReBakedDAO Contract\n @author ReBaked Team"}, "fullyImplemented": true, "id": 8288, "linearizedBaseContracts": [8288, 341, 131, 2219, 282, 8916], "name": "ReBakedDAO", "nameLocation": "869:10:38", "nodeType": "ContractDefinition", "nodes": [{"global": false, "id": 6735, "libraryName": {"id": 6732, "name": "SafeERC20Upgradeable", "nameLocations": ["955:20:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 736, "src": "955:20:38"}, "nodeType": "UsingForDirective", "src": "949:49:38", "typeName": {"id": 6734, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6733, "name": "IERC20Upgradeable", "nameLocations": ["980:17:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 419, "src": "980:17:38"}, "referencedDeclaration": 419, "src": "980:17:38", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}}, {"global": false, "id": 6739, "libraryName": {"id": 6736, "name": "ProjectLibrary", "nameLocations": ["1009:14:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9885, "src": "1009:14:38"}, "nodeType": "UsingForDirective", "src": "1003:33:38", "typeName": {"id": 6738, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6737, "name": "Project", "nameLocations": ["1028:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "1028:7:38"}, "referencedDeclaration": 9906, "src": "1028:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}}, {"global": false, "id": 6743, "libraryName": {"id": 6740, "name": "PackageLibrary", "nameLocations": ["1047:14:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9645, "src": "1047:14:38"}, "nodeType": "UsingForDirective", "src": "1041:33:38", "typeName": {"id": 6742, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6741, "name": "Package", "nameLocations": ["1066:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "1066:7:38"}, "referencedDeclaration": 9939, "src": "1066:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}}, {"global": false, "id": 6747, "libraryName": {"id": 6744, "name": "CollaboratorLibrary", "nameLocations": ["1085:19:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9112, "src": "1085:19:38"}, "nodeType": "UsingForDirective", "src": "1079:43:38", "typeName": {"id": 6746, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6745, "name": "Collaborator", "nameLocations": ["1109:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "1109:12:38"}, "referencedDeclaration": 9954, "src": "1109:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}}, {"global": false, "id": 6751, "libraryName": {"id": 6748, "name": "ObserverLibrary", "nameLocations": ["1133:15:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9203, "src": "1133:15:38"}, "nodeType": "UsingForDirective", "src": "1127:35:38", "typeName": {"id": 6750, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6749, "name": "Observer", "nameLocations": ["1153:8:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9961, "src": "1153:8:38"}, "referencedDeclaration": 9961, "src": "1153:8:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}}}, {"constant": true, "functionSelector": "e1d84514", "id": 6754, "mutability": "constant", "name": "PCT_PRECISION", "nameLocation": "1241:13:38", "nodeType": "VariableDeclaration", "scope": 8288, "src": "1217:43:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6752, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1217:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "value": {"hexValue": "316536", "id": 6753, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1257:3:38", "typeDescriptions": {"typeIdentifier": "t_rational_1000000_by_1", "typeString": "int_const 1000000"}, "value": "1e6"}, "visibility": "public"}, {"constant": false, "functionSelector": "61d027b3", "id": 6756, "mutability": "mutable", "name": "treasury", "nameLocation": "1308:8:38", "nodeType": "VariableDeclaration", "scope": 8288, "src": "1293:23:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6755, "name": "address", "nodeType": "ElementaryTypeName", "src": "1293:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "public"}, {"constant": false, "id": 6761, "mutability": "mutable", "name": "projectData", "nameLocation": "1387:11:38", "nodeType": "VariableDeclaration", "scope": 8288, "src": "1351:47:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project)"}, "typeName": {"id": 6760, "keyType": {"id": 6757, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1359:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1351:27:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project)"}, "valueType": {"id": 6759, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6758, "name": "Project", "nameLocations": ["1370:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "1370:7:38"}, "referencedDeclaration": 9906, "src": "1370:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}}, "visibility": "private"}, {"constant": false, "id": 6768, "mutability": "mutable", "name": "packageData", "nameLocation": "1502:11:38", "nodeType": "VariableDeclaration", "scope": 8288, "src": "1446:67:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package))"}, "typeName": {"id": 6767, "keyType": {"id": 6762, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1454:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1446:47:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package))"}, "valueType": {"id": 6766, "keyType": {"id": 6763, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1473:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1465:27:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package)"}, "valueType": {"id": 6765, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6764, "name": "Package", "nameLocations": ["1484:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "1484:7:38"}, "referencedDeclaration": 9939, "src": "1484:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}}}, "visibility": "private"}, {"constant": false, "id": 6776, "mutability": "mutable", "name": "approvedUser", "nameLocation": "1647:12:38", "nodeType": "VariableDeclaration", "scope": 8288, "src": "1574:85:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => bool)))"}, "typeName": {"id": 6775, "keyType": {"id": 6769, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1582:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1574:64:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => bool)))"}, "valueType": {"id": 6774, "keyType": {"id": 6770, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1601:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1593:44:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))"}, "valueType": {"id": 6773, "keyType": {"id": 6771, "name": "address", "nodeType": "ElementaryTypeName", "src": "1620:7:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1612:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}, "valueType": {"id": 6772, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1631:4:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}}}}, "visibility": "private"}, {"constant": false, "id": 6785, "mutability": "mutable", "name": "collaboratorData", "nameLocation": "1801:16:38", "nodeType": "VariableDeclaration", "scope": 8288, "src": "1720:97:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator)))"}, "typeName": {"id": 6784, "keyType": {"id": 6777, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1728:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1720:72:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator)))"}, "valueType": {"id": 6783, "keyType": {"id": 6778, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1747:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1739:52:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Collaborator))"}, "valueType": {"id": 6782, "keyType": {"id": 6779, "name": "address", "nodeType": "ElementaryTypeName", "src": "1766:7:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1758:32:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$", "typeString": "mapping(address => struct Collaborator)"}, "valueType": {"id": 6781, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6780, "name": "Collaborator", "nameLocations": ["1777:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "1777:12:38"}, "referencedDeclaration": 9954, "src": "1777:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}}}}, "visibility": "private"}, {"constant": false, "id": 6794, "mutability": "mutable", "name": "observerData", "nameLocation": "1951:12:38", "nodeType": "VariableDeclaration", "scope": 8288, "src": "1874:89:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Observer)))"}, "typeName": {"id": 6793, "keyType": {"id": 6786, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1882:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1874:68:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Observer)))"}, "valueType": {"id": 6792, "keyType": {"id": 6787, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1901:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Mapping", "src": "1893:48:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Observer))"}, "valueType": {"id": 6791, "keyType": {"id": 6788, "name": "address", "nodeType": "ElementaryTypeName", "src": "1920:7:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Mapping", "src": "1912:28:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$", "typeString": "mapping(address => struct Observer)"}, "valueType": {"id": 6790, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6789, "name": "Observer", "nameLocations": ["1931:8:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9961, "src": "1931:8:38"}, "referencedDeclaration": 9961, "src": "1931:8:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}}}}}, "visibility": "private"}, {"body": {"id": 6807, "nodeType": "Block", "src": "2069:63:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6800, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6797, "src": "2087:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 6801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2097:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "2087:11:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "5a65726f20616d6f756e74", "id": 6803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2100:13:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_499f3f4b0ad3588aa1eb6e198be77bff643a4218ffbf2bef1370e58aadea5df4", "typeString": "literal_string \"Zero amount\""}, "value": "Zero amount"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_499f3f4b0ad3588aa1eb6e198be77bff643a4218ffbf2bef1370e58aadea5df4", "typeString": "literal_string \"Zero amount\""}], "id": 6799, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2079:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6804, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2079:35:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6805, "nodeType": "ExpressionStatement", "src": "2079:35:38"}, {"id": 6806, "nodeType": "PlaceholderStatement", "src": "2124:1:38"}]}, "documentation": {"id": 6795, "nodeType": "StructuredDocumentation", "src": "1970:60:38", "text": " @notice Throws if amount provided is zero"}, "id": 6808, "name": "nonZero", "nameLocation": "2044:7:38", "nodeType": "ModifierDefinition", "parameters": {"id": 6798, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6797, "mutability": "mutable", "name": "amount_", "nameLocation": "2060:7:38", "nodeType": "VariableDeclaration", "scope": 6808, "src": "2052:15:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6796, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2052:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2051:17:38"}, "src": "2035:97:38", "virtual": false, "visibility": "internal"}, {"body": {"id": 6825, "nodeType": "Block", "src": "2277:121:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 6820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"id": 6814, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "2295:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 6816, "indexExpression": {"id": 6815, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6811, "src": "2307:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2295:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "id": 6817, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "2319:9:38", "memberName": "initiator", "nodeType": "MemberAccess", "referencedDeclaration": 9889, "src": "2295:33:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 6818, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "2332:10:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 6819, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2332:12:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2295:49:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "63616c6c6572206973206e6f742070726f6a65637420696e69746961746f72", "id": 6821, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2346:33:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_24541c496c6cde3e41b8d4242571ff8746a1ef390be98ba9d128aee2b4105001", "typeString": "literal_string \"caller is not project initiator\""}, "value": "caller is not project initiator"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_24541c496c6cde3e41b8d4242571ff8746a1ef390be98ba9d128aee2b4105001", "typeString": "literal_string \"caller is not project initiator\""}], "id": 6813, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2287:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6822, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2287:93:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6823, "nodeType": "ExpressionStatement", "src": "2287:93:38"}, {"id": 6824, "nodeType": "PlaceholderStatement", "src": "2390:1:38"}]}, "documentation": {"id": 6809, "nodeType": "StructuredDocumentation", "src": "2138:91:38", "text": " @notice Throws if called by any account other than the project initiator"}, "id": 6826, "name": "onlyInitiator", "nameLocation": "2243:13:38", "nodeType": "ModifierDefinition", "parameters": {"id": 6812, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6811, "mutability": "mutable", "name": "_projectId", "nameLocation": "2265:10:38", "nodeType": "VariableDeclaration", "scope": 6826, "src": "2257:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6810, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2257:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "2256:20:38"}, "src": "2234:164:38", "virtual": false, "visibility": "internal"}, {"body": {"id": 6854, "nodeType": "Block", "src": "2583:169:38", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "id": 6834, "name": "__Ownable_init", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "2593:14:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()"}}, "id": 6835, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2593:16:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6836, "nodeType": "ExpressionStatement", "src": "2593:16:38"}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "id": 6837, "name": "__ReentrancyGuard_init", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 305, "src": "2619:22:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()"}}, "id": 6838, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2619:24:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6839, "nodeType": "ExpressionStatement", "src": "2619:24:38"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 6846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6841, "name": "treasury_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6829, "src": "2662:9:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 6844, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2683:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 6843, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2675:7:38", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 6842, "name": "address", "nodeType": "ElementaryTypeName", "src": "2675:7:38", "typeDescriptions": {}}}, "id": 6845, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2675:10:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2662:23:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e76616c69642074726561737572792061646472657373", "id": 6847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2687:26:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2907d22e021443ed72dd5d6da68ce09da129c5a4aeb5f71d047f95f263ebcfce", "typeString": "literal_string \"invalid treasury address\""}, "value": "invalid treasury address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_2907d22e021443ed72dd5d6da68ce09da129c5a4aeb5f71d047f95f263ebcfce", "typeString": "literal_string \"invalid treasury address\""}], "id": 6840, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2654:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6848, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2654:60:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6849, "nodeType": "ExpressionStatement", "src": "2654:60:38"}, {"expression": {"id": 6852, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 6850, "name": "treasury", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6756, "src": "2725:8:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 6851, "name": "treasury_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6829, "src": "2736:9:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2725:20:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 6853, "nodeType": "ExpressionStatement", "src": "2725:20:38"}]}, "documentation": {"id": 6827, "nodeType": "StructuredDocumentation", "src": "2404:116:38", "text": " @notice Initialize of contract (replace for constructor)\n @param treasury_ Treasury address"}, "functionSelector": "c4d66de8", "id": 6855, "implemented": true, "kind": "function", "modifiers": [{"id": 6832, "kind": "modifierInvocation", "modifierName": {"id": 6831, "name": "initializer", "nameLocations": ["2571:11:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 202, "src": "2571:11:38"}, "nodeType": "ModifierInvocation", "src": "2571:11:38"}], "name": "initialize", "nameLocation": "2534:10:38", "nodeType": "FunctionDefinition", "parameters": {"id": 6830, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6829, "mutability": "mutable", "name": "treasury_", "nameLocation": "2553:9:38", "nodeType": "VariableDeclaration", "scope": 6855, "src": "2545:17:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6828, "name": "address", "nodeType": "ElementaryTypeName", "src": "2545:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2544:19:38"}, "returnParameters": {"id": 6833, "nodeType": "ParameterList", "parameters": [], "src": "2583:0:38"}, "scope": 8288, "src": "2525:227:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"baseFunctions": [8773], "body": {"id": 6886, "nodeType": "Block", "src": "2992:201:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 6869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6864, "name": "treasury_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6858, "src": "3010:9:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 6867, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3031:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 6866, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3023:7:38", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 6865, "name": "address", "nodeType": "ElementaryTypeName", "src": "3023:7:38", "typeDescriptions": {}}}, "id": 6868, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3023:10:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "3010:23:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e76616c69642074726561737572792061646472657373", "id": 6870, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3035:26:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2907d22e021443ed72dd5d6da68ce09da129c5a4aeb5f71d047f95f263ebcfce", "typeString": "literal_string \"invalid treasury address\""}, "value": "invalid treasury address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_2907d22e021443ed72dd5d6da68ce09da129c5a4aeb5f71d047f95f263ebcfce", "typeString": "literal_string \"invalid treasury address\""}], "id": 6863, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3002:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6871, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3002:60:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6872, "nodeType": "ExpressionStatement", "src": "3002:60:38"}, {"assignments": [6874], "declarations": [{"constant": false, "id": 6874, "mutability": "mutable", "name": "oldTreasury", "nameLocation": "3080:11:38", "nodeType": "VariableDeclaration", "scope": 6886, "src": "3072:19:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6873, "name": "address", "nodeType": "ElementaryTypeName", "src": "3072:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 6876, "initialValue": {"id": 6875, "name": "treasury", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6756, "src": "3094:8:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "3072:30:38"}, {"expression": {"id": 6879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 6877, "name": "treasury", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6756, "src": "3112:8:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 6878, "name": "treasury_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6858, "src": "3123:9:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "3112:20:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 6880, "nodeType": "ExpressionStatement", "src": "3112:20:38"}, {"eventCall": {"arguments": [{"id": 6882, "name": "oldTreasury", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6874, "src": "3164:11:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6883, "name": "treasury", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6756, "src": "3177:8:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 6881, "name": "UpdatedTreasury", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8649, "src": "3148:15:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)"}}, "id": 6884, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3148:38:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6885, "nodeType": "EmitStatement", "src": "3143:43:38"}]}, "documentation": {"id": 6856, "nodeType": "StructuredDocumentation", "src": "2804:121:38", "text": " @notice Update treasury address\n @param treasury_ Treasury address\n Emit {UpdatedTreasury}"}, "functionSelector": "7f51bb1f", "id": 6887, "implemented": true, "kind": "function", "modifiers": [{"id": 6861, "kind": "modifierInvocation", "modifierName": {"id": 6860, "name": "onlyOwner", "nameLocations": ["2982:9:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 45, "src": "2982:9:38"}, "nodeType": "ModifierInvocation", "src": "2982:9:38"}], "name": "updateTreasury", "nameLocation": "2939:14:38", "nodeType": "FunctionDefinition", "parameters": {"id": 6859, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6858, "mutability": "mutable", "name": "treasury_", "nameLocation": "2962:9:38", "nodeType": "VariableDeclaration", "scope": 6887, "src": "2954:17:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6857, "name": "address", "nodeType": "ElementaryTypeName", "src": "2954:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2953:19:38"}, "returnParameters": {"id": 6862, "nodeType": "ParameterList", "parameters": [], "src": "2992:0:38"}, "scope": 8288, "src": "2930:263:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8781], "body": {"id": 6931, "nodeType": "Block", "src": "3529:259:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 6906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6901, "name": "token_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6890, "src": "3547:6:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 6904, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3565:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 6903, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3557:7:38", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 6902, "name": "address", "nodeType": "ElementaryTypeName", "src": "3557:7:38", "typeDescriptions": {}}}, "id": 6905, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3557:10:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "3547:20:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c696420746f6b656e2061646472657373", "id": 6907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3569:23:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", "typeString": "literal_string \"Invalid token address\""}, "value": "Invalid token address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", "typeString": "literal_string \"Invalid token address\""}], "id": 6900, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3539:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 6908, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3539:54:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6909, "nodeType": "ExpressionStatement", "src": "3539:54:38"}, {"assignments": [6911], "declarations": [{"constant": false, "id": 6911, "mutability": "mutable", "name": "_projectId", "nameLocation": "3611:10:38", "nodeType": "VariableDeclaration", "scope": 6931, "src": "3603:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6910, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3603:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "id": 6914, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "id": 6912, "name": "_generateProjectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8258, "src": "3624:18:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", "typeString": "function () view returns (bytes32)"}}, "id": 6913, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3624:20:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "VariableDeclarationStatement", "src": "3603:41:38"}, {"expression": {"arguments": [{"id": 6919, "name": "token_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6890, "src": "3693:6:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6920, "name": "budget_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6892, "src": "3701:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"id": 6915, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "3654:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 6917, "indexExpression": {"id": 6916, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6911, "src": "3666:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3654:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "id": 6918, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3678:14:38", "memberName": "_createProject", "nodeType": "MemberAccess", "referencedDeclaration": 9711, "src": "3654:38:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Project_$9906_storage_ptr_$_t_address_$_t_uint256_$returns$__$bound_to$_t_struct$_Project_$9906_storage_ptr_$", "typeString": "function (struct Project storage pointer,address,uint256)"}}, "id": 6921, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3654:55:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6922, "nodeType": "ExpressionStatement", "src": "3654:55:38"}, {"eventCall": {"arguments": [{"id": 6924, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6911, "src": "3739:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"arguments": [], "expression": {"argumentTypes": [], "id": 6925, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "3751:10:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 6926, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3751:12:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6927, "name": "token_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6890, "src": "3765:6:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 6928, "name": "budget_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6892, "src": "3773:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 6923, "name": "CreatedProject", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8659, "src": "3724:14:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,address,uint256)"}}, "id": 6929, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3724:57:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6930, "nodeType": "EmitStatement", "src": "3719:62:38"}]}, "documentation": {"id": 6888, "nodeType": "StructuredDocumentation", "src": "3199:230:38", "text": " @dev Creates project proposal\n @param token_ project token address\n @param budget_ total budget (has to be approved on token contract if project has its own token)\n Emit {CreatedProject}"}, "functionSelector": "e82d6572", "id": 6932, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 6895, "name": "budget_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6892, "src": "3507:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 6896, "kind": "modifierInvocation", "modifierName": {"id": 6894, "name": "nonZero", "nameLocations": ["3499:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6808, "src": "3499:7:38"}, "nodeType": "ModifierInvocation", "src": "3499:16:38"}, {"id": 6898, "kind": "modifierInvocation", "modifierName": {"id": 6897, "name": "nonReentrant", "nameLocations": ["3516:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 335, "src": "3516:12:38"}, "nodeType": "ModifierInvocation", "src": "3516:12:38"}], "name": "createProject", "nameLocation": "3443:13:38", "nodeType": "FunctionDefinition", "parameters": {"id": 6893, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6890, "mutability": "mutable", "name": "token_", "nameLocation": "3465:6:38", "nodeType": "VariableDeclaration", "scope": 6932, "src": "3457:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 6889, "name": "address", "nodeType": "ElementaryTypeName", "src": "3457:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 6892, "mutability": "mutable", "name": "budget_", "nameLocation": "3481:7:38", "nodeType": "VariableDeclaration", "scope": 6932, "src": "3473:15:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6891, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3473:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3456:33:38"}, "returnParameters": {"id": 6899, "nodeType": "ParameterList", "parameters": [], "src": "3529:0:38"}, "scope": 8288, "src": "3434:354:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8787], "body": {"id": 6956, "nodeType": "Block", "src": "4006:134:38", "statements": [{"assignments": [6944], "declarations": [{"constant": false, "id": 6944, "mutability": "mutable", "name": "budgetLeft_", "nameLocation": "4024:11:38", "nodeType": "VariableDeclaration", "scope": 6956, "src": "4016:19:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6943, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4016:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6950, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"id": 6945, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "4038:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 6947, "indexExpression": {"id": 6946, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6935, "src": "4050:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4038:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "id": 6948, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4062:14:38", "memberName": "_finishProject", "nodeType": "MemberAccess", "referencedDeclaration": 9770, "src": "4038:38:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Project_$9906_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Project_$9906_storage_ptr_$", "typeString": "function (struct Project storage pointer) returns (uint256)"}}, "id": 6949, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4038:40:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "4016:62:38"}, {"eventCall": {"arguments": [{"id": 6952, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6935, "src": "4109:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 6953, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6944, "src": "4121:11:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 6951, "name": "FinishedProject", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8673, "src": "4093:15:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint256)"}}, "id": 6954, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4093:40:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 6955, "nodeType": "EmitStatement", "src": "4088:45:38"}]}, "documentation": {"id": 6933, "nodeType": "StructuredDocumentation", "src": "3794:116:38", "text": " @notice Finishes project\n @param _projectId Id of the project\n Emit {FinishedProject}"}, "functionSelector": "85ceab29", "id": 6957, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 6938, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6935, "src": "3981:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 6939, "kind": "modifierInvocation", "modifierName": {"id": 6937, "name": "onlyInitiator", "nameLocations": ["3967:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "3967:13:38"}, "nodeType": "ModifierInvocation", "src": "3967:25:38"}, {"id": 6941, "kind": "modifierInvocation", "modifierName": {"id": 6940, "name": "nonReentrant", "nameLocations": ["3993:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 335, "src": "3993:12:38"}, "nodeType": "ModifierInvocation", "src": "3993:12:38"}], "name": "finishProject", "nameLocation": "3924:13:38", "nodeType": "FunctionDefinition", "parameters": {"id": 6936, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6935, "mutability": "mutable", "name": "_projectId", "nameLocation": "3946:10:38", "nodeType": "VariableDeclaration", "scope": 6957, "src": "3938:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6934, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3938:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "3937:20:38"}, "returnParameters": {"id": 6942, "nodeType": "ParameterList", "parameters": [], "src": "4006:0:38"}, "scope": 8288, "src": "3915:225:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8804], "body": {"id": 7071, "nodeType": "Block", "src": "4777:766:38", "statements": [{"assignments": [6984], "declarations": [{"constant": false, "id": 6984, "mutability": "mutable", "name": "project", "nameLocation": "4803:7:38", "nodeType": "VariableDeclaration", "scope": 7071, "src": "4787:23:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}, "typeName": {"id": 6983, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 6982, "name": "Project", "nameLocations": ["4787:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "4787:7:38"}, "referencedDeclaration": 9906, "src": "4787:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}, "visibility": "internal"}], "id": 6988, "initialValue": {"baseExpression": {"id": 6985, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "4813:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 6987, "indexExpression": {"id": 6986, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6960, "src": "4825:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4813:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "4787:49:38"}, {"assignments": [6990], "declarations": [{"constant": false, "id": 6990, "mutability": "mutable", "name": "total", "nameLocation": "4854:5:38", "nodeType": "VariableDeclaration", "scope": 7071, "src": "4846:13:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6989, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4846:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 6996, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 6993, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 6991, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6962, "src": "4862:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"id": 6992, "name": "_bonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6964, "src": "4872:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4862:16:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"id": 6994, "name": "_observerBudget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6966, "src": "4881:15:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4862:34:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "4846:50:38"}, {"expression": {"arguments": [{"id": 7000, "name": "total", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6990, "src": "4937:5:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 6997, "name": "project", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6984, "src": "4906:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 6999, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4914:22:38", "memberName": "_reservePackagesBudget", "nodeType": "MemberAccess", "referencedDeclaration": 9811, "src": "4906:30:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Project_$9906_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Project_$9906_storage_ptr_$", "typeString": "function (struct Project storage pointer,uint256)"}}, "id": 7001, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4906:37:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7002, "nodeType": "ExpressionStatement", "src": "4906:37:38"}, {"assignments": [7004], "declarations": [{"constant": false, "id": 7004, "mutability": "mutable", "name": "_packageId", "nameLocation": "4961:10:38", "nodeType": "VariableDeclaration", "scope": 7071, "src": "4953:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7003, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4953:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "id": 7009, "initialValue": {"arguments": [{"id": 7006, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6960, "src": "4993:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"hexValue": "30", "id": 7007, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5005:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 7005, "name": "_generatePackageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8287, "src": "4974:18:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (bytes32,uint256) view returns (bytes32)"}}, "id": 7008, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4974:33:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "VariableDeclarationStatement", "src": "4953:54:38"}, {"assignments": [7012], "declarations": [{"constant": false, "id": 7012, "mutability": "mutable", "name": "package", "nameLocation": "5033:7:38", "nodeType": "VariableDeclaration", "scope": 7071, "src": "5017:23:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 7011, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7010, "name": "Package", "nameLocations": ["5017:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "5017:7:38"}, "referencedDeclaration": 9939, "src": "5017:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "id": 7018, "initialValue": {"baseExpression": {"baseExpression": {"id": 7013, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "5043:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7015, "indexExpression": {"id": 7014, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6960, "src": "5055:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5043:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7017, "indexExpression": {"id": 7016, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7004, "src": "5067:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5043:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "5017:61:38"}, {"expression": {"arguments": [{"id": 7022, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6962, "src": "5111:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 7023, "name": "_observerBudget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6966, "src": "5120:15:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 7024, "name": "_bonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6964, "src": "5137:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 7025, "name": "_collaboratorsLimit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6968, "src": "5145:19:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 7019, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7012, "src": "5088:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7021, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5096:14:38", "memberName": "_createPackage", "nodeType": "MemberAccess", "referencedDeclaration": 9291, "src": "5088:22:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,uint256,uint256,uint256,uint256)"}}, "id": 7026, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5088:77:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7027, "nodeType": "ExpressionStatement", "src": "5088:77:38"}, {"expression": {"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 7033, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "5225:10:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 7034, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5225:12:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 7035, "name": "treasury", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6756, "src": "5239:8:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7036, "name": "total", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6990, "src": "5250:5:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": {"hexValue": "35", "id": 7037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5258:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_5_by_1", "typeString": "int_const 5"}, "value": "5"}, "src": "5250:9:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 7039, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5249:11:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": {"hexValue": "313030", "id": 7040, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5263:3:38", "typeDescriptions": {"typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100"}, "value": "100"}, "src": "5249:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"expression": {"id": 7029, "name": "project", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6984, "src": "5193:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 7030, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5201:5:38", "memberName": "token", "nodeType": "MemberAccess", "referencedDeclaration": 9891, "src": "5193:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 7028, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "5175:17:38", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "type(contract IERC20Upgradeable)"}}, "id": 7031, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5175:32:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 7032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5208:16:38", "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 513, "src": "5175:49:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "function (contract IERC20Upgradeable,address,address,uint256)"}}, "id": 7042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5175:92:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7043, "nodeType": "ExpressionStatement", "src": "5175:92:38"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7047, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7044, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6971, "src": "5282:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "5293:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "5282:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7046, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5302:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "5282:21:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7062, "nodeType": "IfStatement", "src": "5278:171:38", "trueBody": {"id": 7061, "nodeType": "Block", "src": "5305:144:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7051, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7049, "name": "_observerBudget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6966, "src": "5327:15:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7050, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5345:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "5327:19:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e76616c6964206f627365727665727320627564676574", "id": 7052, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5348:26:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_87a139ee77d6deaf6e0c6a32bcb311a9ec441f711c809441ebbfd38420d68615", "typeString": "literal_string \"invalid observers budget\""}, "value": "invalid observers budget"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_87a139ee77d6deaf6e0c6a32bcb311a9ec441f711c809441ebbfd38420d68615", "typeString": "literal_string \"invalid observers budget\""}], "id": 7048, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "5319:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7053, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5319:56:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7054, "nodeType": "ExpressionStatement", "src": "5319:56:38"}, {"expression": {"arguments": [{"id": 7056, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6960, "src": "5403:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7057, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7004, "src": "5415:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7058, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6971, "src": "5427:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}], "id": 7055, "name": "_addObservers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7677, "src": "5389:13:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes32,address[] memory)"}}, "id": 7059, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5389:49:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7060, "nodeType": "ExpressionStatement", "src": "5389:49:38"}]}}, {"eventCall": {"arguments": [{"id": 7064, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6960, "src": "5479:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7065, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7004, "src": "5491:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7066, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6962, "src": "5503:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 7067, "name": "_bonus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6964, "src": "5512:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 7068, "name": "_observerBudget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6966, "src": "5520:15:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 7063, "name": "CreatedPackage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8685, "src": "5464:14:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (bytes32,bytes32,uint256,uint256,uint256)"}}, "id": 7069, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5464:72:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7070, "nodeType": "EmitStatement", "src": "5459:77:38"}]}, "documentation": {"id": 6958, "nodeType": "StructuredDocumentation", "src": "4146:348:38", "text": " @notice Creates package in project\n @param _projectId Id of the project\n @param _budget MGP budget\n @param _bonus Bonus budget\n @param _observerBudget Observer budget\n @param _collaboratorsLimit limit on number of collaborators\n @param _observers List of observers\n Emit {CreatedPackage}"}, "functionSelector": "b2b57114", "id": 7072, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 6974, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6960, "src": "4735:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 6975, "kind": "modifierInvocation", "modifierName": {"id": 6973, "name": "onlyInitiator", "nameLocations": ["4721:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "4721:13:38"}, "nodeType": "ModifierInvocation", "src": "4721:25:38"}, {"arguments": [{"id": 6977, "name": "_budget", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6962, "src": "4755:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 6978, "kind": "modifierInvocation", "modifierName": {"id": 6976, "name": "nonZero", "nameLocations": ["4747:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6808, "src": "4747:7:38"}, "nodeType": "ModifierInvocation", "src": "4747:16:38"}, {"id": 6980, "kind": "modifierInvocation", "modifierName": {"id": 6979, "name": "nonReentrant", "nameLocations": ["4764:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 335, "src": "4764:12:38"}, "nodeType": "ModifierInvocation", "src": "4764:12:38"}], "name": "createPackage", "nameLocation": "4508:13:38", "nodeType": "FunctionDefinition", "parameters": {"id": 6972, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 6960, "mutability": "mutable", "name": "_projectId", "nameLocation": "4539:10:38", "nodeType": "VariableDeclaration", "scope": 7072, "src": "4531:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 6959, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4531:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 6962, "mutability": "mutable", "name": "_budget", "nameLocation": "4567:7:38", "nodeType": "VariableDeclaration", "scope": 7072, "src": "4559:15:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6961, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4559:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 6964, "mutability": "mutable", "name": "_bonus", "nameLocation": "4592:6:38", "nodeType": "VariableDeclaration", "scope": 7072, "src": "4584:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6963, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4584:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 6966, "mutability": "mutable", "name": "_observerBudget", "nameLocation": "4616:15:38", "nodeType": "VariableDeclaration", "scope": 7072, "src": "4608:23:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6965, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4608:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 6968, "mutability": "mutable", "name": "_collaboratorsLimit", "nameLocation": "4649:19:38", "nodeType": "VariableDeclaration", "scope": 7072, "src": "4641:27:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 6967, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4641:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 6971, "mutability": "mutable", "name": "_observers", "nameLocation": "4695:10:38", "nodeType": "VariableDeclaration", "scope": 7072, "src": "4678:27:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 6969, "name": "address", "nodeType": "ElementaryTypeName", "src": "4678:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 6970, "nodeType": "ArrayTypeName", "src": "4678:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "4521:190:38"}, "returnParameters": {"id": 6981, "nodeType": "ParameterList", "parameters": [], "src": "4777:0:38"}, "scope": 8288, "src": "4499:1044:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8821], "body": {"id": 7242, "nodeType": "Block", "src": "6118:1230:38", "statements": [{"assignments": [7094], "declarations": [{"constant": false, "id": 7094, "mutability": "mutable", "name": "package", "nameLocation": "6144:7:38", "nodeType": "VariableDeclaration", "scope": 7242, "src": "6128:23:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 7093, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7092, "name": "Package", "nameLocations": ["6128:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "6128:7:38"}, "referencedDeclaration": 9939, "src": "6128:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "id": 7100, "initialValue": {"baseExpression": {"baseExpression": {"id": 7095, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "6154:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7097, "indexExpression": {"id": 7096, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7075, "src": "6166:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6154:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7099, "indexExpression": {"id": 7098, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7077, "src": "6178:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6154:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "6128:61:38"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7102, "name": "_collaborators", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7080, "src": "6207:14:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6222:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "6207:21:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"id": 7104, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7094, "src": "6232:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7105, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6240:18:38", "memberName": "totalCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9930, "src": "6232:26:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6207:51:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e76616c696420636f6c6c61626f7261746f7273206c697374", "id": 7107, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6260:28:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5ca65cb75d7b8dc223cc26652e4735163b47add5f5159f0342b94b0aab8575a4", "typeString": "literal_string \"invalid collaborators list\""}, "value": "invalid collaborators list"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_5ca65cb75d7b8dc223cc26652e4735163b47add5f5159f0342b94b0aab8575a4", "typeString": "literal_string \"invalid collaborators list\""}], "id": 7101, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6199:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7108, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6199:90:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7109, "nodeType": "ExpressionStatement", "src": "6199:90:38"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7115, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7111, "name": "_collaborators", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7080, "src": "6307:14:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6322:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "6307:21:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"id": 7113, "name": "_scores", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7086, "src": "6332:7:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, "id": 7114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6340:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "6332:14:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6307:39:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "61727261797327206c656e677468206d69736d61746368", "id": 7116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6348:25:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9bd464fa0a124def40ece43d9b5312a49a225a3c1aa27960d76f9488f050d7e8", "typeString": "literal_string \"arrays' length mismatch\""}, "value": "arrays' length mismatch"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_9bd464fa0a124def40ece43d9b5312a49a225a3c1aa27960d76f9488f050d7e8", "typeString": "literal_string \"arrays' length mismatch\""}], "id": 7110, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6299:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7117, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6299:75:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7118, "nodeType": "ExpressionStatement", "src": "6299:75:38"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7124, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7120, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7083, "src": "6392:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6403:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "6392:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"id": 7122, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7094, "src": "6413:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7123, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6421:14:38", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "6413:22:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6392:43:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e76616c6964206f6273657276657273206c697374", "id": 7125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6437:24:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_20479b551647c95d9261dfba708e2ac615e3f27fcda3b5e142f0cd973d3ec26e", "typeString": "literal_string \"invalid observers list\""}, "value": "invalid observers list"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_20479b551647c95d9261dfba708e2ac615e3f27fcda3b5e142f0cd973d3ec26e", "typeString": "literal_string \"invalid observers list\""}], "id": 7119, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6384:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7126, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6384:78:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7127, "nodeType": "ExpressionStatement", "src": "6384:78:38"}, {"assignments": [7129], "declarations": [{"constant": false, "id": 7129, "mutability": "mutable", "name": "budgetLeft_", "nameLocation": "6481:11:38", "nodeType": "VariableDeclaration", "scope": 7242, "src": "6473:19:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7128, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6473:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7133, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 7130, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7094, "src": "6495:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7131, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6503:14:38", "memberName": "_finishPackage", "nodeType": "MemberAccess", "referencedDeclaration": 9558, "src": "6495:22:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer) returns (uint256)"}}, "id": 7132, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6495:24:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "6473:46:38"}, {"expression": {"arguments": [{"id": 7138, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7129, "src": "6568:11:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"id": 7134, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "6529:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 7136, "indexExpression": {"id": 7135, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7075, "src": "6541:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6529:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "id": 7137, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6553:14:38", "memberName": "_finishPackage", "nodeType": "MemberAccess", "referencedDeclaration": 9857, "src": "6529:38:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Project_$9906_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Project_$9906_storage_ptr_$", "typeString": "function (struct Project storage pointer,uint256)"}}, "id": 7139, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6529:51:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7140, "nodeType": "ExpressionStatement", "src": "6529:51:38"}, {"condition": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 7149, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7144, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7141, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7094, "src": "6595:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7142, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6603:5:38", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 9918, "src": "6595:13:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7143, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6611:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "6595:17:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7145, "name": "_collaborators", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7080, "src": "6616:14:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7146, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6631:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "6616:21:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6640:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "6616:25:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "6595:46:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7190, "nodeType": "IfStatement", "src": "6591:381:38", "trueBody": {"id": 7189, "nodeType": "Block", "src": "6643:329:38", "statements": [{"assignments": [7151], "declarations": [{"constant": false, "id": 7151, "mutability": "mutable", "name": "_totalBonusScores", "nameLocation": "6665:17:38", "nodeType": "VariableDeclaration", "scope": 7189, "src": "6657:25:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7150, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6657:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7153, "initialValue": {"hexValue": "30", "id": 7152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6685:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "6657:29:38"}, {"body": {"id": 7180, "nodeType": "Block", "src": "6745:128:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7170, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"baseExpression": {"id": 7166, "name": "_scores", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7086, "src": "6771:7:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, "id": 7168, "indexExpression": {"id": 7167, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7155, "src": "6779:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6771:10:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6784:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "6771:14:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e76616c696420626f6e75732073636f7265", "id": 7171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6787:21:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_51a20a1763a2b38b727bb4d72bcd2480167dd46e6d477bdccdbba02540ee1126", "typeString": "literal_string \"invalid bonus score\""}, "value": "invalid bonus score"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_51a20a1763a2b38b727bb4d72bcd2480167dd46e6d477bdccdbba02540ee1126", "typeString": "literal_string \"invalid bonus score\""}], "id": 7165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6763:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7172, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6763:46:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7173, "nodeType": "ExpressionStatement", "src": "6763:46:38"}, {"expression": {"id": 7178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 7174, "name": "_totalBonusScores", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7151, "src": "6827:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"baseExpression": {"id": 7175, "name": "_scores", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7086, "src": "6848:7:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, "id": 7177, "indexExpression": {"id": 7176, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7155, "src": "6856:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6848:10:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6827:31:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7179, "nodeType": "ExpressionStatement", "src": "6827:31:38"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7158, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7155, "src": "6720:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 7159, "name": "_scores", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7086, "src": "6724:7:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, "id": 7160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6732:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "6724:14:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6720:18:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7181, "initializationExpression": {"assignments": [7155], "declarations": [{"constant": false, "id": 7155, "mutability": "mutable", "name": "i", "nameLocation": "6713:1:38", "nodeType": "VariableDeclaration", "scope": 7181, "src": "6705:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7154, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6705:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7157, "initialValue": {"hexValue": "30", "id": 7156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6717:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "6705:13:38"}, "loopExpression": {"expression": {"id": 7163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "6740:3:38", "subExpression": {"id": 7162, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7155, "src": "6740:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7164, "nodeType": "ExpressionStatement", "src": "6740:3:38"}, "nodeType": "ForStatement", "src": "6700:173:38"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7183, "name": "_totalBonusScores", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7151, "src": "6894:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"id": 7184, "name": "PCT_PRECISION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6754, "src": "6915:13:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6894:34:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e636f727265637420746f74616c20626f6e75732073636f726573", "id": 7186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6930:30:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0b97c8059c6f797cf321a619eea52ba6ca535b8ab4023fa6d145f1c85f3ac5e6", "typeString": "literal_string \"incorrect total bonus scores\""}, "value": "incorrect total bonus scores"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_0b97c8059c6f797cf321a619eea52ba6ca535b8ab4023fa6d145f1c85f3ac5e6", "typeString": "literal_string \"incorrect total bonus scores\""}], "id": 7182, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "6886:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7187, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6886:75:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7188, "nodeType": "ExpressionStatement", "src": "6886:75:38"}]}}, {"body": {"id": 7213, "nodeType": "Block", "src": "7034:103:38", "statements": [{"expression": {"arguments": [{"id": 7203, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7075, "src": "7072:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7204, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7077, "src": "7084:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"baseExpression": {"id": 7205, "name": "_collaborators", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7080, "src": "7096:14:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7207, "indexExpression": {"id": 7206, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7192, "src": "7111:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7096:17:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"baseExpression": {"id": 7208, "name": "_scores", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7086, "src": "7115:7:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, "id": 7210, "indexExpression": {"id": 7209, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7192, "src": "7123:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7115:10:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 7202, "name": "_payCollaboratorRewards", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8156, "src": "7048:23:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint256)"}}, "id": 7211, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7048:78:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7212, "nodeType": "ExpressionStatement", "src": "7048:78:38"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7195, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7192, "src": "7002:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 7196, "name": "_collaborators", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7080, "src": "7006:14:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7021:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "7006:21:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7002:25:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7214, "initializationExpression": {"assignments": [7192], "declarations": [{"constant": false, "id": 7192, "mutability": "mutable", "name": "i", "nameLocation": "6995:1:38", "nodeType": "VariableDeclaration", "scope": 7214, "src": "6987:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7191, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6987:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7194, "initialValue": {"hexValue": "30", "id": 7193, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6999:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "6987:13:38"}, "loopExpression": {"expression": {"id": 7200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "7029:3:38", "subExpression": {"id": 7199, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7192, "src": "7029:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7201, "nodeType": "ExpressionStatement", "src": "7029:3:38"}, "nodeType": "ForStatement", "src": "6982:155:38"}, {"body": {"id": 7234, "nodeType": "Block", "src": "7195:79:38", "statements": [{"expression": {"arguments": [{"id": 7227, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7075, "src": "7225:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7228, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7077, "src": "7237:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"baseExpression": {"id": 7229, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7083, "src": "7249:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7231, "indexExpression": {"id": 7230, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7216, "src": "7260:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7249:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 7226, "name": "_payObserverFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8211, "src": "7209:15:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,bytes32,address)"}}, "id": 7232, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7209:54:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7233, "nodeType": "ExpressionStatement", "src": "7209:54:38"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7219, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7216, "src": "7167:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 7220, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7083, "src": "7171:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7182:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "7171:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7167:21:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7235, "initializationExpression": {"assignments": [7216], "declarations": [{"constant": false, "id": 7216, "mutability": "mutable", "name": "i", "nameLocation": "7160:1:38", "nodeType": "VariableDeclaration", "scope": 7235, "src": "7152:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7215, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7152:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7218, "initialValue": {"hexValue": "30", "id": 7217, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7164:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "7152:13:38"}, "loopExpression": {"expression": {"id": 7224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "7190:3:38", "subExpression": {"id": 7223, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7216, "src": "7190:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7225, "nodeType": "ExpressionStatement", "src": "7190:3:38"}, "nodeType": "ForStatement", "src": "7147:127:38"}, {"eventCall": {"arguments": [{"id": 7237, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7075, "src": "7305:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7238, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7077, "src": "7317:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7239, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7129, "src": "7329:11:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 7236, "name": "FinishedPackage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8737, "src": "7289:15:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,bytes32,uint256)"}}, "id": 7240, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7289:52:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7241, "nodeType": "EmitStatement", "src": "7284:57:38"}]}, "documentation": {"id": 7073, "nodeType": "StructuredDocumentation", "src": "5549:332:38", "text": " @notice Finishes package in project\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborators List of collaborators\n @param _observers List of observers\n @param _scores List of bonus scores for collaborators\n Emit {FinishedPackage}"}, "functionSelector": "2926aa80", "id": 7243, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 7089, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7075, "src": "6106:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 7090, "kind": "modifierInvocation", "modifierName": {"id": 7088, "name": "onlyInitiator", "nameLocations": ["6092:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "6092:13:38"}, "nodeType": "ModifierInvocation", "src": "6092:25:38"}], "name": "finishPackage", "nameLocation": "5895:13:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7087, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7075, "mutability": "mutable", "name": "_projectId", "nameLocation": "5926:10:38", "nodeType": "VariableDeclaration", "scope": 7243, "src": "5918:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7074, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5918:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7077, "mutability": "mutable", "name": "_packageId", "nameLocation": "5954:10:38", "nodeType": "VariableDeclaration", "scope": 7243, "src": "5946:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7076, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5946:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7080, "mutability": "mutable", "name": "_collaborators", "nameLocation": "5991:14:38", "nodeType": "VariableDeclaration", "scope": 7243, "src": "5974:31:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 7078, "name": "address", "nodeType": "ElementaryTypeName", "src": "5974:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 7079, "nodeType": "ArrayTypeName", "src": "5974:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 7083, "mutability": "mutable", "name": "_observers", "nameLocation": "6032:10:38", "nodeType": "VariableDeclaration", "scope": 7243, "src": "6015:27:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 7081, "name": "address", "nodeType": "ElementaryTypeName", "src": "6015:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 7082, "nodeType": "ArrayTypeName", "src": "6015:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 7086, "mutability": "mutable", "name": "_scores", "nameLocation": "6069:7:38", "nodeType": "VariableDeclaration", "scope": 7243, "src": "6052:24:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]"}, "typeName": {"baseType": {"id": 7084, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6052:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7085, "nodeType": "ArrayTypeName", "src": "6052:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}}, "visibility": "internal"}], "src": "5908:174:38"}, "returnParameters": {"id": 7091, "nodeType": "ParameterList", "parameters": [], "src": "6118:0:38"}, "scope": 8288, "src": "5886:1462:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8837], "body": {"id": 7372, "nodeType": "Block", "src": "7887:928:38", "statements": [{"assignments": [7264], "declarations": [{"constant": false, "id": 7264, "mutability": "mutable", "name": "package", "nameLocation": "7913:7:38", "nodeType": "VariableDeclaration", "scope": 7372, "src": "7897:23:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 7263, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7262, "name": "Package", "nameLocations": ["7897:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "7897:7:38"}, "referencedDeclaration": 9939, "src": "7897:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "id": 7270, "initialValue": {"baseExpression": {"baseExpression": {"id": 7265, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "7923:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7267, "indexExpression": {"id": 7266, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7246, "src": "7935:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7923:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7269, "indexExpression": {"id": 7268, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7248, "src": "7947:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7923:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "7897:61:38"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7272, "name": "_collaborators", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7251, "src": "7976:14:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7991:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "7976:21:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"id": 7274, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7264, "src": "8001:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7275, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8009:18:38", "memberName": "totalCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9930, "src": "8001:26:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "7976:51:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e76616c696420636f6c6c61626f7261746f7273206c656e677468", "id": 7277, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8029:30:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_de2fbffae3f4f1ed598a27d64750bfdd6d759009e12a2c10cadc7ceaef8232cc", "typeString": "literal_string \"invalid collaborators length\""}, "value": "invalid collaborators length"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_de2fbffae3f4f1ed598a27d64750bfdd6d759009e12a2c10cadc7ceaef8232cc", "typeString": "literal_string \"invalid collaborators length\""}], "id": 7271, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "7968:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7278, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7968:92:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7279, "nodeType": "ExpressionStatement", "src": "7968:92:38"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7281, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7254, "src": "8078:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "8089:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "8078:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"id": 7283, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7264, "src": "8099:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7284, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8107:14:38", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "8099:22:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8078:43:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e76616c6964206f6273657276657273206c656e677468", "id": 7286, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8123:26:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1cef18bcdd12a026dd9eb03d0204bf23685f9062ba55504df4db41eec5fffe88", "typeString": "literal_string \"invalid observers length\""}, "value": "invalid observers length"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_1cef18bcdd12a026dd9eb03d0204bf23685f9062ba55504df4db41eec5fffe88", "typeString": "literal_string \"invalid observers length\""}], "id": 7280, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "8070:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7287, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8070:80:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7288, "nodeType": "ExpressionStatement", "src": "8070:80:38"}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 7289, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7264, "src": "8161:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7291, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8169:14:38", "memberName": "_cancelPackage", "nodeType": "MemberAccess", "referencedDeclaration": 9315, "src": "8161:22:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer)"}}, "id": 7292, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8161:24:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7293, "nodeType": "ExpressionStatement", "src": "8161:24:38"}, {"condition": {"id": 7294, "name": "_workStarted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7256, "src": "8200:12:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7337, "nodeType": "IfStatement", "src": "8196:280:38", "trueBody": {"id": 7336, "nodeType": "Block", "src": "8214:262:38", "statements": [{"body": {"expression": {"arguments": [{"id": 7307, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7246, "src": "8304:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7308, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7248, "src": "8316:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"baseExpression": {"id": 7309, "name": "_collaborators", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7251, "src": "8328:14:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7311, "indexExpression": {"id": 7310, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7296, "src": "8343:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8328:17:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"hexValue": "30", "id": 7312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8347:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 7306, "name": "_payCollaboratorRewards", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8156, "src": "8280:23:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint256)"}}, "id": 7313, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8280:69:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7314, "nodeType": "ExpressionStatement", "src": "8280:69:38"}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7299, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7296, "src": "8248:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 7300, "name": "_collaborators", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7251, "src": "8252:14:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "8267:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "8252:21:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8248:25:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7315, "initializationExpression": {"assignments": [7296], "declarations": [{"constant": false, "id": 7296, "mutability": "mutable", "name": "i", "nameLocation": "8241:1:38", "nodeType": "VariableDeclaration", "scope": 7315, "src": "8233:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7295, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8233:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7298, "initialValue": {"hexValue": "30", "id": 7297, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8245:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "8233:13:38"}, "loopExpression": {"expression": {"id": 7304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "8275:3:38", "subExpression": {"id": 7303, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7296, "src": "8275:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7305, "nodeType": "ExpressionStatement", "src": "8275:3:38"}, "nodeType": "ForStatement", "src": "8228:121:38"}, {"body": {"expression": {"arguments": [{"id": 7328, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7246, "src": "8427:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7329, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7248, "src": "8439:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"baseExpression": {"id": 7330, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7254, "src": "8451:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7332, "indexExpression": {"id": 7331, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7317, "src": "8462:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8451:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 7327, "name": "_payObserverFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8211, "src": "8411:15:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,bytes32,address)"}}, "id": 7333, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8411:54:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7334, "nodeType": "ExpressionStatement", "src": "8411:54:38"}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7320, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7317, "src": "8383:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 7321, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7254, "src": "8387:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "8398:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "8387:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8383:21:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7335, "initializationExpression": {"assignments": [7317], "declarations": [{"constant": false, "id": 7317, "mutability": "mutable", "name": "i", "nameLocation": "8376:1:38", "nodeType": "VariableDeclaration", "scope": 7335, "src": "8368:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7316, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8368:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7319, "initialValue": {"hexValue": "30", "id": 7318, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8380:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "8368:13:38"}, "loopExpression": {"expression": {"id": 7325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "8406:3:38", "subExpression": {"id": 7324, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7317, "src": "8406:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7326, "nodeType": "ExpressionStatement", "src": "8406:3:38"}, "nodeType": "ForStatement", "src": "8363:102:38"}]}}, {"assignments": [7339], "declarations": [{"constant": false, "id": 7339, "mutability": "mutable", "name": "budgetToBeReverted_", "nameLocation": "8494:19:38", "nodeType": "VariableDeclaration", "scope": 7372, "src": "8486:27:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7338, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8486:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7349, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7340, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7264, "src": "8517:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7341, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8525:6:38", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 9908, "src": "8517:14:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"expression": {"id": 7342, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7264, "src": "8534:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7343, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8542:10:38", "memberName": "budgetPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9912, "src": "8534:18:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8517:35:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 7345, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8516:37:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"expression": {"id": 7346, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7264, "src": "8556:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7347, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8564:5:38", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 9918, "src": "8556:13:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8516:53:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "8486:83:38"}, {"expression": {"id": 7357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 7350, "name": "budgetToBeReverted_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7339, "src": "8579:19:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7351, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7264, "src": "8603:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7352, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8611:15:38", "memberName": "budgetObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9914, "src": "8603:23:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"expression": {"id": 7353, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7264, "src": "8629:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 7354, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8637:19:38", "memberName": "budgetObserversPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9916, "src": "8629:27:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8603:53:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 7356, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8602:55:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "8579:78:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7358, "nodeType": "ExpressionStatement", "src": "8579:78:38"}, {"expression": {"arguments": [{"id": 7363, "name": "budgetToBeReverted_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7339, "src": "8712:19:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"id": 7359, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "8667:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 7361, "indexExpression": {"id": 7360, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7246, "src": "8679:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8667:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "id": 7362, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "8691:20:38", "memberName": "_revertPackageBudget", "nodeType": "MemberAccess", "referencedDeclaration": 9832, "src": "8667:44:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Project_$9906_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Project_$9906_storage_ptr_$", "typeString": "function (struct Project storage pointer,uint256)"}}, "id": 7364, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8667:65:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7365, "nodeType": "ExpressionStatement", "src": "8667:65:38"}, {"eventCall": {"arguments": [{"id": 7367, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7246, "src": "8764:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7368, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7248, "src": "8776:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7369, "name": "budgetToBeReverted_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7339, "src": "8788:19:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 7366, "name": "CanceledPackage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8745, "src": "8748:15:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,bytes32,uint256)"}}, "id": 7370, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8748:60:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7371, "nodeType": "EmitStatement", "src": "8743:65:38"}]}, "documentation": {"id": 7244, "nodeType": "StructuredDocumentation", "src": "7354:303:38", "text": " @notice Cancel package in project and release project budget\n @param _projectId Id of the project\n @param _packageId Id of the project\n @param _collaborators address of the collaborators\n @param _observers address of the observers\n Emit {CanceledPackage}"}, "functionSelector": "085f8a9c", "id": 7373, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 7259, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7246, "src": "7875:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 7260, "kind": "modifierInvocation", "modifierName": {"id": 7258, "name": "onlyInitiator", "nameLocations": ["7861:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "7861:13:38"}, "nodeType": "ModifierInvocation", "src": "7861:25:38"}], "name": "cancelPackage", "nameLocation": "7671:13:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7257, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7246, "mutability": "mutable", "name": "_projectId", "nameLocation": "7702:10:38", "nodeType": "VariableDeclaration", "scope": 7373, "src": "7694:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7245, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7694:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7248, "mutability": "mutable", "name": "_packageId", "nameLocation": "7730:10:38", "nodeType": "VariableDeclaration", "scope": 7373, "src": "7722:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7247, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7722:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7251, "mutability": "mutable", "name": "_collaborators", "nameLocation": "7767:14:38", "nodeType": "VariableDeclaration", "scope": 7373, "src": "7750:31:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 7249, "name": "address", "nodeType": "ElementaryTypeName", "src": "7750:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 7250, "nodeType": "ArrayTypeName", "src": "7750:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 7254, "mutability": "mutable", "name": "_observers", "nameLocation": "7808:10:38", "nodeType": "VariableDeclaration", "scope": 7373, "src": "7791:27:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 7252, "name": "address", "nodeType": "ElementaryTypeName", "src": "7791:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 7253, "nodeType": "ArrayTypeName", "src": "7791:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 7256, "mutability": "mutable", "name": "_workStarted", "nameLocation": "7833:12:38", "nodeType": "VariableDeclaration", "scope": 7373, "src": "7828:17:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 7255, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7828:4:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "7684:167:38"}, "returnParameters": {"id": 7261, "nodeType": "ParameterList", "parameters": [], "src": "7887:0:38"}, "scope": 8288, "src": "7662:1153:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8849], "body": {"id": 7428, "nodeType": "Block", "src": "9271:321:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 7397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7392, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7380, "src": "9289:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 7395, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9314:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 7394, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9306:7:38", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 7393, "name": "address", "nodeType": "ElementaryTypeName", "src": "9306:7:38", "typeDescriptions": {}}}, "id": 7396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9306:10:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "9289:27:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "636f6c6c61626f7261746f7227732061646472657373206973207a65726f", "id": 7398, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9318:32:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0d56864eab7e1a9f464ce2347b12a7792ed60e30b582451e7de914be46d841e8", "typeString": "literal_string \"collaborator's address is zero\""}, "value": "collaborator's address is zero"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_0d56864eab7e1a9f464ce2347b12a7792ed60e30b582451e7de914be46d841e8", "typeString": "literal_string \"collaborator's address is zero\""}], "id": 7391, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "9281:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7399, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9281:70:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7400, "nodeType": "ExpressionStatement", "src": "9281:70:38"}, {"expression": {"arguments": [{"id": 7409, "name": "_mgp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7382, "src": "9435:4:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7401, "name": "collaboratorData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6785, "src": "9362:16:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator storage ref)))"}}, "id": 7405, "indexExpression": {"id": 7402, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7376, "src": "9379:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9362:28:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Collaborator storage ref))"}}, "id": 7406, "indexExpression": {"id": 7403, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7378, "src": "9391:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9362:40:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$", "typeString": "mapping(address => struct Collaborator storage ref)"}}, "id": 7407, "indexExpression": {"id": 7404, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7380, "src": "9403:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9362:55:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage", "typeString": "struct Collaborator storage ref"}}, "id": 7408, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "9418:16:38", "memberName": "_addCollaborator", "nodeType": "MemberAccess", "referencedDeclaration": 9023, "src": "9362:72:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Collaborator_$9954_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Collaborator_$9954_storage_ptr_$", "typeString": "function (struct Collaborator storage pointer,uint256)"}}, "id": 7410, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9362:78:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7411, "nodeType": "ExpressionStatement", "src": "9362:78:38"}, {"expression": {"arguments": [{"id": 7418, "name": "_mgp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7382, "src": "9502:4:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"id": 7412, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "9450:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7415, "indexExpression": {"id": 7413, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7376, "src": "9462:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9450:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7416, "indexExpression": {"id": 7414, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7378, "src": "9474:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9450:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 7417, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "9486:15:38", "memberName": "_allocateBudget", "nodeType": "MemberAccess", "referencedDeclaration": 9447, "src": "9450:51:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,uint256)"}}, "id": 7419, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9450:57:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7420, "nodeType": "ExpressionStatement", "src": "9450:57:38"}, {"eventCall": {"arguments": [{"id": 7422, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7376, "src": "9541:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7423, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7378, "src": "9553:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7424, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7380, "src": "9565:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 7425, "name": "_mgp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7382, "src": "9580:4:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 7421, "name": "AddedCollaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8713, "src": "9523:17:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint256)"}}, "id": 7426, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9523:62:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7427, "nodeType": "EmitStatement", "src": "9518:67:38"}]}, "documentation": {"id": 7374, "nodeType": "StructuredDocumentation", "src": "8821:256:38", "text": " @notice Adds collaborator to package\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborator collaborators' addresses\n @param _mgp MGP amount\n Emit {AddedCollaborator}"}, "functionSelector": "ec104ff1", "id": 7429, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 7385, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7376, "src": "9245:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 7386, "kind": "modifierInvocation", "modifierName": {"id": 7384, "name": "onlyInitiator", "nameLocations": ["9231:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "9231:13:38"}, "nodeType": "ModifierInvocation", "src": "9231:25:38"}, {"arguments": [{"id": 7388, "name": "_mgp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7382, "src": "9265:4:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 7389, "kind": "modifierInvocation", "modifierName": {"id": 7387, "name": "nonZero", "nameLocations": ["9257:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6808, "src": "9257:7:38"}, "nodeType": "ModifierInvocation", "src": "9257:13:38"}], "name": "addCollaborator", "nameLocation": "9091:15:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7383, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7376, "mutability": "mutable", "name": "_projectId", "nameLocation": "9124:10:38", "nodeType": "VariableDeclaration", "scope": 7429, "src": "9116:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7375, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9116:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7378, "mutability": "mutable", "name": "_packageId", "nameLocation": "9152:10:38", "nodeType": "VariableDeclaration", "scope": 7429, "src": "9144:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7377, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9144:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7380, "mutability": "mutable", "name": "_collaborator", "nameLocation": "9180:13:38", "nodeType": "VariableDeclaration", "scope": 7429, "src": "9172:21:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 7379, "name": "address", "nodeType": "ElementaryTypeName", "src": "9172:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 7382, "mutability": "mutable", "name": "_mgp", "nameLocation": "9211:4:38", "nodeType": "VariableDeclaration", "scope": 7429, "src": "9203:12:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7381, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9203:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "9106:115:38"}, "returnParameters": {"id": 7390, "nodeType": "ParameterList", "parameters": [], "src": "9271:0:38"}, "scope": 8288, "src": "9082:510:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8859], "body": {"id": 7476, "nodeType": "Block", "src": "10038:307:38", "statements": [{"expression": {"id": 7450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7442, "name": "approvedUser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6776, "src": "10048:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => bool)))"}}, "id": 7446, "indexExpression": {"id": 7443, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7432, "src": "10061:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10048:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))"}}, "id": 7447, "indexExpression": {"id": 7444, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7434, "src": "10073:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10048:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}}, "id": 7448, "indexExpression": {"id": 7445, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7436, "src": "10085:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10048:51:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "74727565", "id": 7449, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10102:4:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "src": "10048:58:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7451, "nodeType": "ExpressionStatement", "src": "10048:58:38"}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7452, "name": "collaboratorData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6785, "src": "10117:16:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator storage ref)))"}}, "id": 7456, "indexExpression": {"id": 7453, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7432, "src": "10134:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10117:28:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Collaborator storage ref))"}}, "id": 7457, "indexExpression": {"id": 7454, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7434, "src": "10146:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10117:40:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$", "typeString": "mapping(address => struct Collaborator storage ref)"}}, "id": 7458, "indexExpression": {"id": 7455, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7436, "src": "10158:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10117:55:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage", "typeString": "struct Collaborator storage ref"}}, "id": 7459, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10173:20:38", "memberName": "_approveCollaborator", "nodeType": "MemberAccess", "referencedDeclaration": 9049, "src": "10117:76:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Collaborator_$9954_storage_ptr_$returns$__$bound_to$_t_struct$_Collaborator_$9954_storage_ptr_$", "typeString": "function (struct Collaborator storage pointer)"}}, "id": 7460, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10117:78:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7461, "nodeType": "ExpressionStatement", "src": "10117:78:38"}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"baseExpression": {"id": 7462, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "10205:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7465, "indexExpression": {"id": 7463, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7432, "src": "10217:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10205:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7466, "indexExpression": {"id": 7464, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7434, "src": "10229:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10205:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 7467, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10241:20:38", "memberName": "_approveCollaborator", "nodeType": "MemberAccess", "referencedDeclaration": 9463, "src": "10205:56:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer)"}}, "id": 7468, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10205:58:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7469, "nodeType": "ExpressionStatement", "src": "10205:58:38"}, {"eventCall": {"arguments": [{"id": 7471, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7432, "src": "10300:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7472, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7434, "src": "10312:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7473, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7436, "src": "10324:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 7470, "name": "ApprovedCollaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8721, "src": "10279:20:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,bytes32,address)"}}, "id": 7474, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10279:59:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7475, "nodeType": "EmitStatement", "src": "10274:64:38"}]}, "documentation": {"id": 7430, "nodeType": "StructuredDocumentation", "src": "9598:278:38", "text": " @notice Approves collaborator's MGP or deletes collaborator (should be called by admin)\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborator collaborator's address\n Emit {ApprovedCollaborator}"}, "functionSelector": "dcce114e", "id": 7477, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 7439, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7432, "src": "10026:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 7440, "kind": "modifierInvocation", "modifierName": {"id": 7438, "name": "onlyInitiator", "nameLocations": ["10012:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "10012:13:38"}, "nodeType": "ModifierInvocation", "src": "10012:25:38"}], "name": "approveCollaborator", "nameLocation": "9890:19:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7437, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7432, "mutability": "mutable", "name": "_projectId", "nameLocation": "9927:10:38", "nodeType": "VariableDeclaration", "scope": 7477, "src": "9919:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7431, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9919:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7434, "mutability": "mutable", "name": "_packageId", "nameLocation": "9955:10:38", "nodeType": "VariableDeclaration", "scope": 7477, "src": "9947:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7433, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9947:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7436, "mutability": "mutable", "name": "_collaborator", "nameLocation": "9983:13:38", "nodeType": "VariableDeclaration", "scope": 7477, "src": "9975:21:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 7435, "name": "address", "nodeType": "ElementaryTypeName", "src": "9975:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "9909:93:38"}, "returnParameters": {"id": 7441, "nodeType": "ParameterList", "parameters": [], "src": "10038:0:38"}, "scope": 8288, "src": "9881:464:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8871], "body": {"id": 7547, "nodeType": "Block", "src": "10881:549:38", "statements": [{"expression": {"arguments": [{"id": 7500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "10899:52:38", "subExpression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7493, "name": "approvedUser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6776, "src": "10900:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => bool)))"}}, "id": 7495, "indexExpression": {"id": 7494, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7480, "src": "10913:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10900:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))"}}, "id": 7497, "indexExpression": {"id": 7496, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7482, "src": "10925:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10900:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}}, "id": 7499, "indexExpression": {"id": 7498, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7484, "src": "10937:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10900:51:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "636f6c6c61626f7261746f7220617070726f76656420616c726561647921", "id": 7501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10953:32:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f04fffb5edeeb78c7b31b862beaa963147b1688bbce51b90f9d56f719569440c", "typeString": "literal_string \"collaborator approved already!\""}, "value": "collaborator approved already!"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_f04fffb5edeeb78c7b31b862beaa963147b1688bbce51b90f9d56f719569440c", "typeString": "literal_string \"collaborator approved already!\""}], "id": 7492, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "10891:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7502, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10891:95:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7503, "nodeType": "ExpressionStatement", "src": "10891:95:38"}, {"assignments": [7506], "declarations": [{"constant": false, "id": 7506, "mutability": "mutable", "name": "collaborator", "nameLocation": "11018:12:38", "nodeType": "VariableDeclaration", "scope": 7547, "src": "10997:33:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 7505, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7504, "name": "Collaborator", "nameLocations": ["10997:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "10997:12:38"}, "referencedDeclaration": 9954, "src": "10997:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}], "id": 7514, "initialValue": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7507, "name": "collaboratorData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6785, "src": "11033:16:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator storage ref)))"}}, "id": 7509, "indexExpression": {"id": 7508, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7480, "src": "11050:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11033:28:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Collaborator storage ref))"}}, "id": 7511, "indexExpression": {"id": 7510, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7482, "src": "11062:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11033:40:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$", "typeString": "mapping(address => struct Collaborator storage ref)"}}, "id": 7513, "indexExpression": {"id": 7512, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7484, "src": "11074:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11033:55:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage", "typeString": "struct Collaborator storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "10997:91:38"}, {"condition": {"id": 7515, "name": "_shouldPayMgp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7486, "src": "11102:13:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7524, "nodeType": "IfStatement", "src": "11098:109:38", "trueBody": {"id": 7523, "nodeType": "Block", "src": "11117:90:38", "statements": [{"expression": {"arguments": [{"id": 7517, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7480, "src": "11155:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7518, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7482, "src": "11167:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7519, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7484, "src": "11179:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"hexValue": "30", "id": 7520, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11194:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 7516, "name": "_payCollaboratorRewards", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8156, "src": "11131:23:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint256)"}}, "id": 7521, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11131:65:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7522, "nodeType": "ExpressionStatement", "src": "11131:65:38"}]}}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 7525, "name": "collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7506, "src": "11217:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 7527, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "11230:19:38", "memberName": "_removeCollaborator", "nodeType": "MemberAccess", "referencedDeclaration": 9065, "src": "11217:32:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Collaborator_$9954_storage_ptr_$returns$__$bound_to$_t_struct$_Collaborator_$9954_storage_ptr_$", "typeString": "function (struct Collaborator storage pointer)"}}, "id": 7528, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11217:34:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7529, "nodeType": "ExpressionStatement", "src": "11217:34:38"}, {"expression": {"arguments": [{"id": 7536, "name": "_shouldPayMgp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7486, "src": "11317:13:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"expression": {"id": 7537, "name": "collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7506, "src": "11332:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 7538, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "11345:3:38", "memberName": "mgp", "nodeType": "MemberAccess", "referencedDeclaration": 9941, "src": "11332:16:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"id": 7530, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "11261:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7533, "indexExpression": {"id": 7531, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7480, "src": "11273:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11261:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7534, "indexExpression": {"id": 7532, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7482, "src": "11285:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11261:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 7535, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "11297:19:38", "memberName": "_removeCollaborator", "nodeType": "MemberAccess", "referencedDeclaration": 9493, "src": "11261:55:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_bool_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,bool,uint256)"}}, "id": 7539, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11261:88:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7540, "nodeType": "ExpressionStatement", "src": "11261:88:38"}, {"eventCall": {"arguments": [{"id": 7542, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7480, "src": "11385:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7543, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7482, "src": "11397:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7544, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7484, "src": "11409:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 7541, "name": "RemovedCollaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8729, "src": "11365:19:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,bytes32,address)"}}, "id": 7545, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11365:58:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7546, "nodeType": "EmitStatement", "src": "11360:63:38"}]}, "documentation": {"id": 7478, "nodeType": "StructuredDocumentation", "src": "10351:341:38", "text": " @notice Approves collaborator's MGP or deletes collaborator (should be called by admin)\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborator collaborator's address\n @param _shouldPayMgp Should pay MGP for the collaborator\n Emit {RemovedCollaborator}"}, "functionSelector": "0eae9d88", "id": 7548, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 7489, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7480, "src": "10869:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 7490, "kind": "modifierInvocation", "modifierName": {"id": 7488, "name": "onlyInitiator", "nameLocations": ["10855:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "10855:13:38"}, "nodeType": "ModifierInvocation", "src": "10855:25:38"}], "name": "removeCollaborator", "nameLocation": "10706:18:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7487, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7480, "mutability": "mutable", "name": "_projectId", "nameLocation": "10742:10:38", "nodeType": "VariableDeclaration", "scope": 7548, "src": "10734:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7479, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "10734:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7482, "mutability": "mutable", "name": "_packageId", "nameLocation": "10770:10:38", "nodeType": "VariableDeclaration", "scope": 7548, "src": "10762:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7481, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "10762:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7484, "mutability": "mutable", "name": "_collaborator", "nameLocation": "10798:13:38", "nodeType": "VariableDeclaration", "scope": 7548, "src": "10790:21:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 7483, "name": "address", "nodeType": "ElementaryTypeName", "src": "10790:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 7486, "mutability": "mutable", "name": "_shouldPayMgp", "nameLocation": "10826:13:38", "nodeType": "VariableDeclaration", "scope": 7548, "src": "10821:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 7485, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10821:4:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "10724:121:38"}, "returnParameters": {"id": 7491, "nodeType": "ParameterList", "parameters": [], "src": "10881:0:38"}, "scope": 8288, "src": "10697:733:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8879], "body": {"id": 7604, "nodeType": "Block", "src": "11681:419:38", "statements": [{"expression": {"arguments": [{"id": 7565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "11699:51:38", "subExpression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7557, "name": "approvedUser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6776, "src": "11700:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => bool)))"}}, "id": 7559, "indexExpression": {"id": 7558, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7551, "src": "11713:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11700:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))"}}, "id": 7561, "indexExpression": {"id": 7560, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7553, "src": "11725:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11700:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)"}}, "id": 7564, "indexExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 7562, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "11737:10:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 7563, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11737:12:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11700:50:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "636f6c6c61626f7261746f7220617070726f76656420616c726561647921", "id": 7566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11752:32:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f04fffb5edeeb78c7b31b862beaa963147b1688bbce51b90f9d56f719569440c", "typeString": "literal_string \"collaborator approved already!\""}, "value": "collaborator approved already!"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_f04fffb5edeeb78c7b31b862beaa963147b1688bbce51b90f9d56f719569440c", "typeString": "literal_string \"collaborator approved already!\""}], "id": 7556, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "11691:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7567, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11691:94:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7568, "nodeType": "ExpressionStatement", "src": "11691:94:38"}, {"assignments": [7571], "declarations": [{"constant": false, "id": 7571, "mutability": "mutable", "name": "collaborator", "nameLocation": "11817:12:38", "nodeType": "VariableDeclaration", "scope": 7604, "src": "11796:33:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 7570, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7569, "name": "Collaborator", "nameLocations": ["11796:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "11796:12:38"}, "referencedDeclaration": 9954, "src": "11796:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}], "id": 7580, "initialValue": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7572, "name": "collaboratorData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6785, "src": "11832:16:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator storage ref)))"}}, "id": 7574, "indexExpression": {"id": 7573, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7551, "src": "11849:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11832:28:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Collaborator storage ref))"}}, "id": 7576, "indexExpression": {"id": 7575, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7553, "src": "11861:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11832:40:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$", "typeString": "mapping(address => struct Collaborator storage ref)"}}, "id": 7579, "indexExpression": {"arguments": [], "expression": {"argumentTypes": [], "id": 7577, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "11873:10:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 7578, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11873:12:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11832:54:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage", "typeString": "struct Collaborator storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "11796:90:38"}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 7581, "name": "collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7571, "src": "11896:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 7583, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "11909:19:38", "memberName": "_removeCollaborator", "nodeType": "MemberAccess", "referencedDeclaration": 9065, "src": "11896:32:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Collaborator_$9954_storage_ptr_$returns$__$bound_to$_t_struct$_Collaborator_$9954_storage_ptr_$", "typeString": "function (struct Collaborator storage pointer)"}}, "id": 7584, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11896:34:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7585, "nodeType": "ExpressionStatement", "src": "11896:34:38"}, {"expression": {"arguments": [{"hexValue": "66616c7365", "id": 7592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11996:5:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, {"expression": {"id": 7593, "name": "collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7571, "src": "12003:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 7594, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "12016:3:38", "memberName": "mgp", "nodeType": "MemberAccess", "referencedDeclaration": 9941, "src": "12003:16:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"id": 7586, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "11940:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7589, "indexExpression": {"id": 7587, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7551, "src": "11952:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11940:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7590, "indexExpression": {"id": 7588, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7553, "src": "11964:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11940:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 7591, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "11976:19:38", "memberName": "_removeCollaborator", "nodeType": "MemberAccess", "referencedDeclaration": 9493, "src": "11940:55:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_bool_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,bool,uint256)"}}, "id": 7595, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11940:80:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7596, "nodeType": "ExpressionStatement", "src": "11940:80:38"}, {"eventCall": {"arguments": [{"id": 7598, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7551, "src": "12056:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7599, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7553, "src": "12068:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"arguments": [], "expression": {"argumentTypes": [], "id": 7600, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "12080:10:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 7601, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12080:12:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 7597, "name": "RemovedCollaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8729, "src": "12036:19:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,bytes32,address)"}}, "id": 7602, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12036:57:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7603, "nodeType": "EmitStatement", "src": "12031:62:38"}]}, "documentation": {"id": 7549, "nodeType": "StructuredDocumentation", "src": "11436:171:38", "text": " @notice Self remove collaborator\n @param _projectId Id of the project\n @param _packageId Id of the package\n Emit {RemovedCollaborator}"}, "functionSelector": "03a1fc22", "id": 7605, "implemented": true, "kind": "function", "modifiers": [], "name": "selfRemove", "nameLocation": "11621:10:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7554, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7551, "mutability": "mutable", "name": "_projectId", "nameLocation": "11640:10:38", "nodeType": "VariableDeclaration", "scope": 7605, "src": "11632:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7550, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "11632:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7553, "mutability": "mutable", "name": "_packageId", "nameLocation": "11660:10:38", "nodeType": "VariableDeclaration", "scope": 7605, "src": "11652:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7552, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "11652:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "11631:40:38"}, "returnParameters": {"id": 7555, "nodeType": "ParameterList", "parameters": [], "src": "11681:0:38"}, "scope": 8288, "src": "11612:488:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"body": {"id": 7676, "nodeType": "Block", "src": "12236:444:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7616, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7612, "src": "12254:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12265:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "12254:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7618, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12274:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "12254:21:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "656d707479206f627365727665727320617272617921", "id": 7620, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12277:24:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3455c48edf0cadfcbb54fa5d64f69c9a0ba6371f9887114ced22a8e237385a55", "typeString": "literal_string \"empty observers array!\""}, "value": "empty observers array!"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_3455c48edf0cadfcbb54fa5d64f69c9a0ba6371f9887114ced22a8e237385a55", "typeString": "literal_string \"empty observers array!\""}], "id": 7615, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "12246:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7621, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12246:56:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7622, "nodeType": "ExpressionStatement", "src": "12246:56:38"}, {"body": {"id": 7658, "nodeType": "Block", "src": "12361:169:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 7642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"baseExpression": {"id": 7635, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7612, "src": "12383:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7637, "indexExpression": {"id": 7636, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7624, "src": "12394:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12383:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 7640, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12408:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 7639, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "12400:7:38", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 7638, "name": "address", "nodeType": "ElementaryTypeName", "src": "12400:7:38", "typeDescriptions": {}}}, "id": 7641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12400:10:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "12383:27:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "7a65726f206f627365727665722773206164647265737321", "id": 7643, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12412:26:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ac7178626af83d7667a919a8511949a621a2a6d80c3a578036b7c2e2e1c15a3a", "typeString": "literal_string \"zero observer's address!\""}, "value": "zero observer's address!"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_ac7178626af83d7667a919a8511949a621a2a6d80c3a578036b7c2e2e1c15a3a", "typeString": "literal_string \"zero observer's address!\""}], "id": 7634, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "12375:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7644, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12375:64:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7645, "nodeType": "ExpressionStatement", "src": "12375:64:38"}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7646, "name": "observerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6794, "src": "12453:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Observer storage ref)))"}}, "id": 7652, "indexExpression": {"id": 7647, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7607, "src": "12466:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12453:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Observer storage ref))"}}, "id": 7653, "indexExpression": {"id": 7648, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7609, "src": "12478:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12453:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$", "typeString": "mapping(address => struct Observer storage ref)"}}, "id": 7654, "indexExpression": {"baseExpression": {"id": 7649, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7612, "src": "12490:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7651, "indexExpression": {"id": 7650, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7624, "src": "12501:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12490:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12453:51:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage", "typeString": "struct Observer storage ref"}}, "id": 7655, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "12505:12:38", "memberName": "_addObserver", "nodeType": "MemberAccess", "referencedDeclaration": 9159, "src": "12453:64:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Observer_$9961_storage_ptr_$returns$__$bound_to$_t_struct$_Observer_$9961_storage_ptr_$", "typeString": "function (struct Observer storage pointer)"}}, "id": 7656, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12453:66:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7657, "nodeType": "ExpressionStatement", "src": "12453:66:38"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7627, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7624, "src": "12333:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 7628, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7612, "src": "12337:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12348:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "12337:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "12333:21:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7659, "initializationExpression": {"assignments": [7624], "declarations": [{"constant": false, "id": 7624, "mutability": "mutable", "name": "i", "nameLocation": "12326:1:38", "nodeType": "VariableDeclaration", "scope": 7659, "src": "12318:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7623, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12318:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7626, "initialValue": {"hexValue": "30", "id": 7625, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12330:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "12318:13:38"}, "loopExpression": {"expression": {"id": 7632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "12356:3:38", "subExpression": {"id": 7631, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7624, "src": "12356:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7633, "nodeType": "ExpressionStatement", "src": "12356:3:38"}, "nodeType": "ForStatement", "src": "12313:217:38"}, {"expression": {"arguments": [{"expression": {"id": 7666, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7612, "src": "12589:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12600:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "12589:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"id": 7660, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "12539:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7663, "indexExpression": {"id": 7661, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7607, "src": "12551:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12539:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7664, "indexExpression": {"id": 7662, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7609, "src": "12563:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12539:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 7665, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "12575:13:38", "memberName": "_addObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9368, "src": "12539:49:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,uint256)"}}, "id": 7668, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12539:68:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7669, "nodeType": "ExpressionStatement", "src": "12539:68:38"}, {"eventCall": {"arguments": [{"id": 7671, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7607, "src": "12638:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7672, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7609, "src": "12650:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7673, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7612, "src": "12662:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}], "id": 7670, "name": "AddedObservers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8694, "src": "12623:14:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes32,address[] memory)"}}, "id": 7674, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12623:50:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7675, "nodeType": "EmitStatement", "src": "12618:55:38"}]}, "id": 7677, "implemented": true, "kind": "function", "modifiers": [], "name": "_addObservers", "nameLocation": "12115:13:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7613, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7607, "mutability": "mutable", "name": "_projectId", "nameLocation": "12146:10:38", "nodeType": "VariableDeclaration", "scope": 7677, "src": "12138:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7606, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "12138:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7609, "mutability": "mutable", "name": "_packageId", "nameLocation": "12174:10:38", "nodeType": "VariableDeclaration", "scope": 7677, "src": "12166:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7608, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "12166:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7612, "mutability": "mutable", "name": "_observers", "nameLocation": "12211:10:38", "nodeType": "VariableDeclaration", "scope": 7677, "src": "12194:27:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 7610, "name": "address", "nodeType": "ElementaryTypeName", "src": "12194:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 7611, "nodeType": "ArrayTypeName", "src": "12194:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "12128:99:38"}, "returnParameters": {"id": 7614, "nodeType": "ParameterList", "parameters": [], "src": "12236:0:38"}, "scope": 8288, "src": "12106:574:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "private"}, {"baseFunctions": [8890], "body": {"id": 7697, "nodeType": "Block", "src": "13060:66:38", "statements": [{"expression": {"arguments": [{"id": 7692, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7680, "src": "13084:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7693, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7682, "src": "13096:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7694, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7685, "src": "13108:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}], "id": 7691, "name": "_addObservers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7677, "src": "13070:13:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes32,address[] memory)"}}, "id": 7695, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13070:49:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7696, "nodeType": "ExpressionStatement", "src": "13070:49:38"}]}, "documentation": {"id": 7678, "nodeType": "StructuredDocumentation", "src": "12686:213:38", "text": " @notice Adds observer to packages\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _observers observers' addresses\n Emit {AddedObservers}"}, "functionSelector": "be06555e", "id": 7698, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 7688, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7680, "src": "13048:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 7689, "kind": "modifierInvocation", "modifierName": {"id": 7687, "name": "onlyInitiator", "nameLocations": ["13034:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "13034:13:38"}, "nodeType": "ModifierInvocation", "src": "13034:25:38"}], "name": "addObservers", "nameLocation": "12913:12:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7686, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7680, "mutability": "mutable", "name": "_projectId", "nameLocation": "12943:10:38", "nodeType": "VariableDeclaration", "scope": 7698, "src": "12935:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7679, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "12935:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7682, "mutability": "mutable", "name": "_packageId", "nameLocation": "12971:10:38", "nodeType": "VariableDeclaration", "scope": 7698, "src": "12963:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7681, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "12963:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7685, "mutability": "mutable", "name": "_observers", "nameLocation": "13008:10:38", "nodeType": "VariableDeclaration", "scope": 7698, "src": "12991:27:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 7683, "name": "address", "nodeType": "ElementaryTypeName", "src": "12991:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 7684, "nodeType": "ArrayTypeName", "src": "12991:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "12925:99:38"}, "returnParameters": {"id": 7690, "nodeType": "ParameterList", "parameters": [], "src": "13060:0:38"}, "scope": 8288, "src": "12904:222:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8901], "body": {"id": 7761, "nodeType": "Block", "src": "13509:374:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7716, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7713, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7706, "src": "13527:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "13538:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "13527:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13547:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "13527:21:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "656d707479206f627365727665727320617272617921", "id": 7717, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13550:24:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3455c48edf0cadfcbb54fa5d64f69c9a0ba6371f9887114ced22a8e237385a55", "typeString": "literal_string \"empty observers array!\""}, "value": "empty observers array!"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_3455c48edf0cadfcbb54fa5d64f69c9a0ba6371f9887114ced22a8e237385a55", "typeString": "literal_string \"empty observers array!\""}], "id": 7712, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "13519:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7718, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13519:56:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7719, "nodeType": "ExpressionStatement", "src": "13519:56:38"}, {"body": {"id": 7743, "nodeType": "Block", "src": "13634:94:38", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7731, "name": "observerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6794, "src": "13648:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Observer storage ref)))"}}, "id": 7737, "indexExpression": {"id": 7732, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7701, "src": "13661:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13648:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Observer storage ref))"}}, "id": 7738, "indexExpression": {"id": 7733, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7703, "src": "13673:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13648:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$", "typeString": "mapping(address => struct Observer storage ref)"}}, "id": 7739, "indexExpression": {"baseExpression": {"id": 7734, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7706, "src": "13685:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7736, "indexExpression": {"id": 7735, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7721, "src": "13696:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13685:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13648:51:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage", "typeString": "struct Observer storage ref"}}, "id": 7740, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "13700:15:38", "memberName": "_removeObserver", "nodeType": "MemberAccess", "referencedDeclaration": 9176, "src": "13648:67:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Observer_$9961_storage_ptr_$returns$__$bound_to$_t_struct$_Observer_$9961_storage_ptr_$", "typeString": "function (struct Observer storage pointer)"}}, "id": 7741, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13648:69:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7742, "nodeType": "ExpressionStatement", "src": "13648:69:38"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7724, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7721, "src": "13606:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 7725, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7706, "src": "13610:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7726, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "13621:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "13610:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "13606:21:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7744, "initializationExpression": {"assignments": [7721], "declarations": [{"constant": false, "id": 7721, "mutability": "mutable", "name": "i", "nameLocation": "13599:1:38", "nodeType": "VariableDeclaration", "scope": 7744, "src": "13591:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7720, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13591:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7723, "initialValue": {"hexValue": "30", "id": 7722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13603:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "13591:13:38"}, "loopExpression": {"expression": {"id": 7729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "13629:3:38", "subExpression": {"id": 7728, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7721, "src": "13629:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7730, "nodeType": "ExpressionStatement", "src": "13629:3:38"}, "nodeType": "ForStatement", "src": "13586:142:38"}, {"expression": {"arguments": [{"expression": {"id": 7751, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7706, "src": "13790:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "13801:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "13790:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"id": 7745, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "13737:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7748, "indexExpression": {"id": 7746, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7701, "src": "13749:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13737:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7749, "indexExpression": {"id": 7747, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7703, "src": "13761:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13737:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 7750, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "13773:16:38", "memberName": "_removeObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9403, "src": "13737:52:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,uint256)"}}, "id": 7753, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13737:71:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7754, "nodeType": "ExpressionStatement", "src": "13737:71:38"}, {"eventCall": {"arguments": [{"id": 7756, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7701, "src": "13841:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7757, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7703, "src": "13853:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7758, "name": "_observers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7706, "src": "13865:10:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}], "id": 7755, "name": "RemovedObservers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8703, "src": "13824:16:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes32,address[] memory)"}}, "id": 7759, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13824:52:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7760, "nodeType": "EmitStatement", "src": "13819:57:38"}]}, "documentation": {"id": 7699, "nodeType": "StructuredDocumentation", "src": "13132:213:38", "text": " @notice Removes observer from packages\n @param _projectId Id of the project\n @param _packageId package id\n @param _observers observers' addresses\n Emit {RemovedObservers}"}, "functionSelector": "3a7efc84", "id": 7762, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 7709, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7701, "src": "13497:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 7710, "kind": "modifierInvocation", "modifierName": {"id": 7708, "name": "onlyInitiator", "nameLocations": ["13483:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "13483:13:38"}, "nodeType": "ModifierInvocation", "src": "13483:25:38"}], "name": "removeObservers", "nameLocation": "13359:15:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7707, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7701, "mutability": "mutable", "name": "_projectId", "nameLocation": "13392:10:38", "nodeType": "VariableDeclaration", "scope": 7762, "src": "13384:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7700, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "13384:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7703, "mutability": "mutable", "name": "_packageId", "nameLocation": "13420:10:38", "nodeType": "VariableDeclaration", "scope": 7762, "src": "13412:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7702, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "13412:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7706, "mutability": "mutable", "name": "_observers", "nameLocation": "13457:10:38", "nodeType": "VariableDeclaration", "scope": 7762, "src": "13440:27:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 7704, "name": "address", "nodeType": "ElementaryTypeName", "src": "13440:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 7705, "nodeType": "ArrayTypeName", "src": "13440:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "13374:99:38"}, "returnParameters": {"id": 7711, "nodeType": "ParameterList", "parameters": [], "src": "13509:0:38"}, "scope": 8288, "src": "13350:533:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8915], "body": {"id": 7885, "nodeType": "Block", "src": "14090:858:38", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 7787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7779, "name": "_observersIn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7769, "src": "14108:12:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14121:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "14108:19:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7781, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14130:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "14108:23:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7783, "name": "_observersOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7772, "src": "14135:13:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14149:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "14135:20:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14158:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "14135:24:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "14108:51:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "656d707479206f62736572766572732061727261797321", "id": 7788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "14161:25:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_77cc571188b2beee7667919d41671683f04090d89a0e5b4ad077c1de65e85635", "typeString": "literal_string \"empty observers arrays!\""}, "value": "empty observers arrays!"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_77cc571188b2beee7667919d41671683f04090d89a0e5b4ad077c1de65e85635", "typeString": "literal_string \"empty observers arrays!\""}], "id": 7778, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "14100:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 7789, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14100:87:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7790, "nodeType": "ExpressionStatement", "src": "14100:87:38"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7791, "name": "_observersIn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7769, "src": "14202:12:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14215:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "14202:19:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7793, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14224:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "14202:23:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7837, "nodeType": "IfStatement", "src": "14198:360:38", "trueBody": {"id": 7836, "nodeType": "Block", "src": "14227:331:38", "statements": [{"body": {"id": 7818, "nodeType": "Block", "src": "14291:101:38", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7806, "name": "observerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6794, "src": "14309:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Observer storage ref)))"}}, "id": 7812, "indexExpression": {"id": 7807, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7764, "src": "14322:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14309:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Observer storage ref))"}}, "id": 7813, "indexExpression": {"id": 7808, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7766, "src": "14334:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14309:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$", "typeString": "mapping(address => struct Observer storage ref)"}}, "id": 7814, "indexExpression": {"baseExpression": {"id": 7809, "name": "_observersIn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7769, "src": "14346:12:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7811, "indexExpression": {"id": 7810, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7796, "src": "14359:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14346:15:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14309:53:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage", "typeString": "struct Observer storage ref"}}, "id": 7815, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14363:12:38", "memberName": "_addObserver", "nodeType": "MemberAccess", "referencedDeclaration": 9159, "src": "14309:66:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Observer_$9961_storage_ptr_$returns$__$bound_to$_t_struct$_Observer_$9961_storage_ptr_$", "typeString": "function (struct Observer storage pointer)"}}, "id": 7816, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14309:68:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7817, "nodeType": "ExpressionStatement", "src": "14309:68:38"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7799, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7796, "src": "14261:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 7800, "name": "_observersIn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7769, "src": "14265:12:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7801, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14278:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "14265:19:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "14261:23:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7819, "initializationExpression": {"assignments": [7796], "declarations": [{"constant": false, "id": 7796, "mutability": "mutable", "name": "i", "nameLocation": "14254:1:38", "nodeType": "VariableDeclaration", "scope": 7819, "src": "14246:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7795, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14246:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7798, "initialValue": {"hexValue": "30", "id": 7797, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14258:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "14246:13:38"}, "loopExpression": {"expression": {"id": 7804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14286:3:38", "subExpression": {"id": 7803, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7796, "src": "14286:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7805, "nodeType": "ExpressionStatement", "src": "14286:3:38"}, "nodeType": "ForStatement", "src": "14241:151:38"}, {"expression": {"arguments": [{"expression": {"id": 7826, "name": "_observersIn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7769, "src": "14455:12:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14468:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "14455:19:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"id": 7820, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "14405:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7823, "indexExpression": {"id": 7821, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7764, "src": "14417:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14405:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7824, "indexExpression": {"id": 7822, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7766, "src": "14429:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14405:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 7825, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14441:13:38", "memberName": "_addObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9368, "src": "14405:49:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,uint256)"}}, "id": 7828, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14405:70:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7829, "nodeType": "ExpressionStatement", "src": "14405:70:38"}, {"eventCall": {"arguments": [{"id": 7831, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7764, "src": "14510:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7832, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7766, "src": "14522:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7833, "name": "_observersIn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7769, "src": "14534:12:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}], "id": 7830, "name": "AddedObservers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8694, "src": "14495:14:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes32,address[] memory)"}}, "id": 7834, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14495:52:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7835, "nodeType": "EmitStatement", "src": "14490:57:38"}]}}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 7838, "name": "_observersOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7772, "src": "14572:13:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7839, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14586:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "14572:20:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 7840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14595:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "14572:24:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7884, "nodeType": "IfStatement", "src": "14568:374:38", "trueBody": {"id": 7883, "nodeType": "Block", "src": "14598:344:38", "statements": [{"body": {"id": 7865, "nodeType": "Block", "src": "14663:105:38", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7853, "name": "observerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6794, "src": "14681:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Observer storage ref)))"}}, "id": 7859, "indexExpression": {"id": 7854, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7764, "src": "14694:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14681:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Observer storage ref))"}}, "id": 7860, "indexExpression": {"id": 7855, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7766, "src": "14706:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14681:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$", "typeString": "mapping(address => struct Observer storage ref)"}}, "id": 7861, "indexExpression": {"baseExpression": {"id": 7856, "name": "_observersOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7772, "src": "14718:13:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7858, "indexExpression": {"id": 7857, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7843, "src": "14732:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14718:16:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14681:54:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage", "typeString": "struct Observer storage ref"}}, "id": 7862, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14736:15:38", "memberName": "_removeObserver", "nodeType": "MemberAccess", "referencedDeclaration": 9176, "src": "14681:70:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Observer_$9961_storage_ptr_$returns$__$bound_to$_t_struct$_Observer_$9961_storage_ptr_$", "typeString": "function (struct Observer storage pointer)"}}, "id": 7863, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14681:72:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7864, "nodeType": "ExpressionStatement", "src": "14681:72:38"}]}, "condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 7849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 7846, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7843, "src": "14632:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 7847, "name": "_observersOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7772, "src": "14636:13:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14650:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "14636:20:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "14632:24:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 7866, "initializationExpression": {"assignments": [7843], "declarations": [{"constant": false, "id": 7843, "mutability": "mutable", "name": "i", "nameLocation": "14625:1:38", "nodeType": "VariableDeclaration", "scope": 7866, "src": "14617:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7842, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14617:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 7845, "initialValue": {"hexValue": "30", "id": 7844, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14629:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "VariableDeclarationStatement", "src": "14617:13:38"}, "loopExpression": {"expression": {"id": 7851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "14658:3:38", "subExpression": {"id": 7850, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7843, "src": "14658:1:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 7852, "nodeType": "ExpressionStatement", "src": "14658:3:38"}, "nodeType": "ForStatement", "src": "14612:156:38"}, {"expression": {"arguments": [{"expression": {"id": 7873, "name": "_observersOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7772, "src": "14835:13:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, "id": 7874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14849:6:38", "memberName": "length", "nodeType": "MemberAccess", "src": "14835:20:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"id": 7867, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "14782:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7870, "indexExpression": {"id": 7868, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7764, "src": "14794:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14782:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7871, "indexExpression": {"id": 7869, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7766, "src": "14806:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14782:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 7872, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14818:16:38", "memberName": "_removeObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9403, "src": "14782:52:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,uint256)"}}, "id": 7875, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14782:74:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7876, "nodeType": "ExpressionStatement", "src": "14782:74:38"}, {"eventCall": {"arguments": [{"id": 7878, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7764, "src": "14893:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7879, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7766, "src": "14905:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 7880, "name": "_observersOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7772, "src": "14917:13:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}], "id": 7877, "name": "RemovedObservers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8703, "src": "14876:16:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes32,address[] memory)"}}, "id": 7881, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14876:55:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 7882, "nodeType": "EmitStatement", "src": "14871:60:38"}]}}]}, "functionSelector": "71af530b", "id": 7886, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 7775, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7764, "src": "14078:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "id": 7776, "kind": "modifierInvocation", "modifierName": {"id": 7774, "name": "onlyInitiator", "nameLocations": ["14064:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 6826, "src": "14064:13:38"}, "nodeType": "ModifierInvocation", "src": "14064:25:38"}], "name": "updateObservers", "nameLocation": "13898:15:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7773, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7764, "mutability": "mutable", "name": "_projectId", "nameLocation": "13931:10:38", "nodeType": "VariableDeclaration", "scope": 7886, "src": "13923:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7763, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "13923:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7766, "mutability": "mutable", "name": "_packageId", "nameLocation": "13959:10:38", "nodeType": "VariableDeclaration", "scope": 7886, "src": "13951:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7765, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "13951:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7769, "mutability": "mutable", "name": "_observersIn", "nameLocation": "13996:12:38", "nodeType": "VariableDeclaration", "scope": 7886, "src": "13979:29:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 7767, "name": "address", "nodeType": "ElementaryTypeName", "src": "13979:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 7768, "nodeType": "ArrayTypeName", "src": "13979:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 7772, "mutability": "mutable", "name": "_observersOut", "nameLocation": "14035:13:38", "nodeType": "VariableDeclaration", "scope": 7886, "src": "14018:30:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 7770, "name": "address", "nodeType": "ElementaryTypeName", "src": "14018:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 7771, "nodeType": "ArrayTypeName", "src": "14018:9:38", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "13913:141:38"}, "returnParameters": {"id": 7777, "nodeType": "ParameterList", "parameters": [], "src": "14090:0:38"}, "scope": 8288, "src": "13889:1059:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"body": {"id": 7899, "nodeType": "Block", "src": "15173:47:38", "statements": [{"expression": {"baseExpression": {"id": 7895, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "15190:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 7897, "indexExpression": {"id": 7896, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7889, "src": "15202:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15190:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "functionReturnParameters": 7894, "id": 7898, "nodeType": "Return", "src": "15183:30:38"}]}, "documentation": {"id": 7887, "nodeType": "StructuredDocumentation", "src": "14996:89:38", "text": " @notice Get project details\n @param _projectId Id of the project"}, "functionSelector": "23d683e7", "id": 7900, "implemented": true, "kind": "function", "modifiers": [], "name": "getProjectData", "nameLocation": "15099:14:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7890, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7889, "mutability": "mutable", "name": "_projectId", "nameLocation": "15122:10:38", "nodeType": "VariableDeclaration", "scope": 7900, "src": "15114:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7888, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "15114:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "15113:20:38"}, "returnParameters": {"id": 7894, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7893, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 7900, "src": "15157:14:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_memory_ptr", "typeString": "struct Project"}, "typeName": {"id": 7892, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7891, "name": "Project", "nameLocations": ["15157:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "15157:7:38"}, "referencedDeclaration": 9906, "src": "15157:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}, "visibility": "internal"}], "src": "15156:16:38"}, "scope": 8288, "src": "15090:130:38", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"body": {"id": 7918, "nodeType": "Block", "src": "15466:61:38", "statements": [{"expression": {"components": [{"baseExpression": {"baseExpression": {"id": 7911, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "15484:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 7913, "indexExpression": {"id": 7912, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7903, "src": "15496:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15484:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 7915, "indexExpression": {"id": 7914, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7905, "src": "15508:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15484:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}], "id": 7916, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "15483:37:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "functionReturnParameters": 7910, "id": 7917, "nodeType": "Return", "src": "15476:44:38"}]}, "documentation": {"id": 7901, "nodeType": "StructuredDocumentation", "src": "15226:132:38", "text": " @notice Get package details\n @param _projectId Id of the project\n @param _packageId Id of the package"}, "functionSelector": "20000478", "id": 7919, "implemented": true, "kind": "function", "modifiers": [], "name": "getPackageData", "nameLocation": "15372:14:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7906, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7903, "mutability": "mutable", "name": "_projectId", "nameLocation": "15395:10:38", "nodeType": "VariableDeclaration", "scope": 7919, "src": "15387:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7902, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "15387:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7905, "mutability": "mutable", "name": "_packageId", "nameLocation": "15415:10:38", "nodeType": "VariableDeclaration", "scope": 7919, "src": "15407:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7904, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "15407:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "15386:40:38"}, "returnParameters": {"id": 7910, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7909, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 7919, "src": "15450:14:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_memory_ptr", "typeString": "struct Package"}, "typeName": {"id": 7908, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7907, "name": "Package", "nameLocations": ["15450:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "15450:7:38"}, "referencedDeclaration": 9939, "src": "15450:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "src": "15449:16:38"}, "scope": 8288, "src": "15363:164:38", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"body": {"id": 7940, "nodeType": "Block", "src": "15890:79:38", "statements": [{"expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7932, "name": "collaboratorData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6785, "src": "15907:16:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator storage ref)))"}}, "id": 7934, "indexExpression": {"id": 7933, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7922, "src": "15924:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15907:28:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Collaborator storage ref))"}}, "id": 7936, "indexExpression": {"id": 7935, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7924, "src": "15936:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15907:40:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$", "typeString": "mapping(address => struct Collaborator storage ref)"}}, "id": 7938, "indexExpression": {"id": 7937, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7926, "src": "15948:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15907:55:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage", "typeString": "struct Collaborator storage ref"}}, "functionReturnParameters": 7931, "id": 7939, "nodeType": "Return", "src": "15900:62:38"}]}, "documentation": {"id": 7920, "nodeType": "StructuredDocumentation", "src": "15533:186:38", "text": " @notice Get collaborator details\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborator Collaborator address"}, "functionSelector": "2008002e", "id": 7941, "implemented": true, "kind": "function", "modifiers": [], "name": "getCollaboratorData", "nameLocation": "15733:19:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7927, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7922, "mutability": "mutable", "name": "_projectId", "nameLocation": "15770:10:38", "nodeType": "VariableDeclaration", "scope": 7941, "src": "15762:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7921, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "15762:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7924, "mutability": "mutable", "name": "_packageId", "nameLocation": "15798:10:38", "nodeType": "VariableDeclaration", "scope": 7941, "src": "15790:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7923, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "15790:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7926, "mutability": "mutable", "name": "_collaborator", "nameLocation": "15826:13:38", "nodeType": "VariableDeclaration", "scope": 7941, "src": "15818:21:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 7925, "name": "address", "nodeType": "ElementaryTypeName", "src": "15818:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "15752:93:38"}, "returnParameters": {"id": 7931, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7930, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 7941, "src": "15869:19:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_memory_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 7929, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7928, "name": "Collaborator", "nameLocations": ["15869:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "15869:12:38"}, "referencedDeclaration": 9954, "src": "15869:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}], "src": "15868:21:38"}, "scope": 8288, "src": "15724:245:38", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"body": {"id": 7972, "nodeType": "Block", "src": "16330:164:38", "statements": [{"assignments": [7957], "declarations": [{"constant": false, "id": 7957, "mutability": "mutable", "name": "collaborator", "nameLocation": "16361:12:38", "nodeType": "VariableDeclaration", "scope": 7972, "src": "16340:33:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 7956, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7955, "name": "Collaborator", "nameLocations": ["16340:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "16340:12:38"}, "referencedDeclaration": 9954, "src": "16340:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}], "id": 7965, "initialValue": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7958, "name": "collaboratorData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6785, "src": "16376:16:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator storage ref)))"}}, "id": 7960, "indexExpression": {"id": 7959, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7944, "src": "16393:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16376:28:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Collaborator storage ref))"}}, "id": 7962, "indexExpression": {"id": 7961, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7946, "src": "16405:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16376:40:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$", "typeString": "mapping(address => struct Collaborator storage ref)"}}, "id": 7964, "indexExpression": {"id": 7963, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7948, "src": "16417:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16376:55:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage", "typeString": "struct Collaborator storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "16340:91:38"}, {"expression": {"components": [{"expression": {"id": 7966, "name": "collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7957, "src": "16450:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 7967, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "16463:3:38", "memberName": "mgp", "nodeType": "MemberAccess", "referencedDeclaration": 9941, "src": "16450:16:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"expression": {"id": 7968, "name": "collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7957, "src": "16468:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 7969, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "16481:5:38", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 9943, "src": "16468:18:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 7970, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "16449:38:38", "typeDescriptions": {"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", "typeString": "tuple(uint256,uint256)"}}, "functionReturnParameters": 7954, "id": 7971, "nodeType": "Return", "src": "16442:45:38"}]}, "documentation": {"id": 7942, "nodeType": "StructuredDocumentation", "src": "15975:186:38", "text": " @notice Get collaborator rewards\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborator Collaborator address"}, "functionSelector": "58ff3e47", "id": 7973, "implemented": true, "kind": "function", "modifiers": [], "name": "getCollaboratorRewards", "nameLocation": "16175:22:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7949, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7944, "mutability": "mutable", "name": "_projectId", "nameLocation": "16215:10:38", "nodeType": "VariableDeclaration", "scope": 7973, "src": "16207:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7943, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "16207:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7946, "mutability": "mutable", "name": "_packageId", "nameLocation": "16243:10:38", "nodeType": "VariableDeclaration", "scope": 7973, "src": "16235:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7945, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "16235:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7948, "mutability": "mutable", "name": "_collaborator", "nameLocation": "16271:13:38", "nodeType": "VariableDeclaration", "scope": 7973, "src": "16263:21:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 7947, "name": "address", "nodeType": "ElementaryTypeName", "src": "16263:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "16197:93:38"}, "returnParameters": {"id": 7954, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7951, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 7973, "src": "16312:7:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7950, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16312:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 7953, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 7973, "src": "16321:7:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 7952, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16321:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "16311:18:38"}, "scope": 8288, "src": "16166:328:38", "stateMutability": "view", "virtual": false, "visibility": "public"}, {"body": {"id": 7994, "nodeType": "Block", "src": "16833:71:38", "statements": [{"expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 7986, "name": "observerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6794, "src": "16850:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Observer storage ref)))"}}, "id": 7988, "indexExpression": {"id": 7987, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7976, "src": "16863:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16850:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Observer storage ref))"}}, "id": 7990, "indexExpression": {"id": 7989, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7978, "src": "16875:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16850:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$", "typeString": "mapping(address => struct Observer storage ref)"}}, "id": 7992, "indexExpression": {"id": 7991, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7980, "src": "16887:9:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16850:47:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage", "typeString": "struct Observer storage ref"}}, "functionReturnParameters": 7985, "id": 7993, "nodeType": "Return", "src": "16843:54:38"}]}, "documentation": {"id": 7974, "nodeType": "StructuredDocumentation", "src": "16500:174:38", "text": " @notice Get observer details\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _observer Observer address"}, "functionSelector": "590ab7db", "id": 7995, "implemented": true, "kind": "function", "modifiers": [], "name": "getObserverData", "nameLocation": "16688:15:38", "nodeType": "FunctionDefinition", "parameters": {"id": 7981, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7976, "mutability": "mutable", "name": "_projectId", "nameLocation": "16721:10:38", "nodeType": "VariableDeclaration", "scope": 7995, "src": "16713:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7975, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "16713:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7978, "mutability": "mutable", "name": "_packageId", "nameLocation": "16749:10:38", "nodeType": "VariableDeclaration", "scope": 7995, "src": "16741:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7977, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "16741:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 7980, "mutability": "mutable", "name": "_observer", "nameLocation": "16777:9:38", "nodeType": "VariableDeclaration", "scope": 7995, "src": "16769:17:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 7979, "name": "address", "nodeType": "ElementaryTypeName", "src": "16769:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "16703:89:38"}, "returnParameters": {"id": 7985, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7984, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 7995, "src": "16816:15:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_memory_ptr", "typeString": "struct Observer"}, "typeName": {"id": 7983, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 7982, "name": "Observer", "nameLocations": ["16816:8:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9961, "src": "16816:8:38"}, "referencedDeclaration": 9961, "src": "16816:8:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}}, "visibility": "internal"}], "src": "16815:17:38"}, "scope": 8288, "src": "16679:225:38", "stateMutability": "view", "virtual": false, "visibility": "external"}, {"body": {"id": 8042, "nodeType": "Block", "src": "17228:282:38", "statements": [{"assignments": [8009], "declarations": [{"constant": false, "id": 8009, "mutability": "mutable", "name": "observer", "nameLocation": "17255:8:38", "nodeType": "VariableDeclaration", "scope": 8042, "src": "17238:25:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}, "typeName": {"id": 8008, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 8007, "name": "Observer", "nameLocations": ["17238:8:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9961, "src": "17238:8:38"}, "referencedDeclaration": 9961, "src": "17238:8:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}}, "visibility": "internal"}], "id": 8017, "initialValue": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 8010, "name": "observerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6794, "src": "17266:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Observer storage ref)))"}}, "id": 8012, "indexExpression": {"id": 8011, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7998, "src": "17279:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17266:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Observer storage ref))"}}, "id": 8014, "indexExpression": {"id": 8013, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8000, "src": "17291:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17266:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$", "typeString": "mapping(address => struct Observer storage ref)"}}, "id": 8016, "indexExpression": {"id": 8015, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8002, "src": "17303:9:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17266:47:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage", "typeString": "struct Observer storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "17238:75:38"}, {"condition": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 8029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 8026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8018, "name": "observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8009, "src": "17327:8:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 8019, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17336:8:38", "memberName": "timePaid", "nodeType": "MemberAccess", "referencedDeclaration": 9958, "src": "17327:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 8020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17347:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "17327:21:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8022, "name": "observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8009, "src": "17352:8:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 8023, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17361:11:38", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9956, "src": "17352:20:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 8024, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17376:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "17352:25:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "17327:50:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"expression": {"id": 8027, "name": "observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8009, "src": "17381:8:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 8028, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17390:9:38", "memberName": "isRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 9960, "src": "17381:18:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "17327:72:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 8033, "nodeType": "IfStatement", "src": "17323:111:38", "trueBody": {"id": 8032, "nodeType": "Block", "src": "17401:33:38", "statements": [{"expression": {"hexValue": "30", "id": 8030, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17422:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "functionReturnParameters": 8006, "id": 8031, "nodeType": "Return", "src": "17415:8:38"}]}}, {"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"baseExpression": {"id": 8034, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "17450:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 8036, "indexExpression": {"id": 8035, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7998, "src": "17462:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17450:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 8038, "indexExpression": {"id": 8037, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8000, "src": "17474:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17450:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 8039, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17486:15:38", "memberName": "_getObserverFee", "nodeType": "MemberAccess", "referencedDeclaration": 9594, "src": "17450:51:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_struct$_Package_$9939_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer) view returns (uint256)"}}, "id": 8040, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17450:53:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 8006, "id": 8041, "nodeType": "Return", "src": "17443:60:38"}]}, "documentation": {"id": 7996, "nodeType": "StructuredDocumentation", "src": "16910:170:38", "text": " @notice Get observer fee\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _observer Observer address"}, "functionSelector": "7cbe62c6", "id": 8043, "implemented": true, "kind": "function", "modifiers": [], "name": "getObserverFee", "nameLocation": "17094:14:38", "nodeType": "FunctionDefinition", "parameters": {"id": 8003, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 7998, "mutability": "mutable", "name": "_projectId", "nameLocation": "17126:10:38", "nodeType": "VariableDeclaration", "scope": 8043, "src": "17118:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7997, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "17118:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8000, "mutability": "mutable", "name": "_packageId", "nameLocation": "17154:10:38", "nodeType": "VariableDeclaration", "scope": 8043, "src": "17146:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 7999, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "17146:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8002, "mutability": "mutable", "name": "_observer", "nameLocation": "17182:9:38", "nodeType": "VariableDeclaration", "scope": 8043, "src": "17174:17:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8001, "name": "address", "nodeType": "ElementaryTypeName", "src": "17174:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "17108:89:38"}, "returnParameters": {"id": 8006, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8005, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 8043, "src": "17219:7:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8004, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17219:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "17218:9:38"}, "scope": 8288, "src": "17085:425:38", "stateMutability": "view", "virtual": false, "visibility": "public"}, {"body": {"id": 8155, "nodeType": "Block", "src": "17988:822:38", "statements": [{"assignments": [8057], "declarations": [{"constant": false, "id": 8057, "mutability": "mutable", "name": "collaborator", "nameLocation": "18019:12:38", "nodeType": "VariableDeclaration", "scope": 8155, "src": "17998:33:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 8056, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 8055, "name": "Collaborator", "nameLocations": ["17998:12:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "17998:12:38"}, "referencedDeclaration": 9954, "src": "17998:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}], "id": 8065, "initialValue": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 8058, "name": "collaboratorData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6785, "src": "18034:16:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator storage ref)))"}}, "id": 8060, "indexExpression": {"id": 8059, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8046, "src": "18051:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18034:28:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Collaborator storage ref))"}}, "id": 8062, "indexExpression": {"id": 8061, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8048, "src": "18063:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18034:40:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$", "typeString": "mapping(address => struct Collaborator storage ref)"}}, "id": 8064, "indexExpression": {"id": 8063, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8050, "src": "18075:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18034:55:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage", "typeString": "struct Collaborator storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "17998:91:38"}, {"assignments": [8068], "declarations": [{"constant": false, "id": 8068, "mutability": "mutable", "name": "package", "nameLocation": "18115:7:38", "nodeType": "VariableDeclaration", "scope": 8155, "src": "18099:23:38", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 8067, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 8066, "name": "Package", "nameLocations": ["18099:7:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "18099:7:38"}, "referencedDeclaration": 9939, "src": "18099:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "id": 8074, "initialValue": {"baseExpression": {"baseExpression": {"id": 8069, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "18125:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 8071, "indexExpression": {"id": 8070, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8046, "src": "18137:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18125:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 8073, "indexExpression": {"id": 8072, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8048, "src": "18149:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18125:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "nodeType": "VariableDeclarationStatement", "src": "18099:61:38"}, {"assignments": [8076], "declarations": [{"constant": false, "id": 8076, "mutability": "mutable", "name": "bonus_", "nameLocation": "18179:6:38", "nodeType": "VariableDeclaration", "scope": 8155, "src": "18171:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8075, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18171:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 8077, "nodeType": "VariableDeclarationStatement", "src": "18171:14:38"}, {"condition": {"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 8085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8081, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8078, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8068, "src": "18199:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 8079, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18207:5:38", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 9918, "src": "18199:13:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 8080, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "18215:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "18199:17:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8084, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 8082, "name": "_score", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8052, "src": "18220:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 8083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "18229:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "18220:10:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "18199:31:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 8112, "nodeType": "IfStatement", "src": "18195:258:38", "trueBody": {"id": 8111, "nodeType": "Block", "src": "18232:221:38", "statements": [{"expression": {"id": 8109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 8086, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8076, "src": "18246:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"condition": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8093, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8090, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8087, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8068, "src": "18256:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 8088, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18264:22:38", "memberName": "collaboratorsPaidBonus", "nodeType": "MemberAccess", "referencedDeclaration": 9922, "src": "18256:30:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"hexValue": "31", "id": 8089, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "18289:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "18256:34:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"id": 8091, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8068, "src": "18294:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 8092, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18302:18:38", "memberName": "totalCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9930, "src": "18294:26:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "18256:64:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 8094, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "18255:66:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8101, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8068, "src": "18403:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 8102, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18411:5:38", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 9918, "src": "18403:13:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": {"id": 8103, "name": "_score", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8052, "src": "18419:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "18403:22:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 8105, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "18402:24:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": {"id": 8106, "name": "PCT_PRECISION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6754, "src": "18429:13:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "18402:40:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 8108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "18255:187:38", "trueExpression": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8099, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8095, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8068, "src": "18345:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 8096, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18353:5:38", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 9918, "src": "18345:13:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"expression": {"id": 8097, "name": "package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8068, "src": "18361:7:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 8098, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18369:9:38", "memberName": "bonusPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9920, "src": "18361:17:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "18345:33:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "id": 8100, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "18344:35:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "18246:196:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 8110, "nodeType": "ExpressionStatement", "src": "18246:196:38"}]}}, {"expression": {"arguments": [{"id": 8121, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8076, "src": "18530:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 8113, "name": "collaboratorData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6785, "src": "18463:16:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Collaborator storage ref)))"}}, "id": 8117, "indexExpression": {"id": 8114, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8046, "src": "18480:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18463:28:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Collaborator storage ref))"}}, "id": 8118, "indexExpression": {"id": 8115, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8048, "src": "18492:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18463:40:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Collaborator_$9954_storage_$", "typeString": "mapping(address => struct Collaborator storage ref)"}}, "id": 8119, "indexExpression": {"id": 8116, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8050, "src": "18504:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18463:55:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage", "typeString": "struct Collaborator storage ref"}}, "id": 8120, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18519:10:38", "memberName": "_payReward", "nodeType": "MemberAccess", "referencedDeclaration": 9111, "src": "18463:66:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Collaborator_$9954_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Collaborator_$9954_storage_ptr_$", "typeString": "function (struct Collaborator storage pointer,uint256)"}}, "id": 8122, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18463:74:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8123, "nodeType": "ExpressionStatement", "src": "18463:74:38"}, {"expression": {"arguments": [{"expression": {"id": 8130, "name": "collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8057, "src": "18594:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 8131, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18607:3:38", "memberName": "mgp", "nodeType": "MemberAccess", "referencedDeclaration": 9941, "src": "18594:16:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 8132, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8076, "src": "18612:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"id": 8124, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "18547:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 8127, "indexExpression": {"id": 8125, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8046, "src": "18559:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18547:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 8128, "indexExpression": {"id": 8126, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8048, "src": "18571:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18547:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 8129, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18583:10:38", "memberName": "_payReward", "nodeType": "MemberAccess", "referencedDeclaration": 9644, "src": "18547:46:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,uint256,uint256)"}}, "id": 8133, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18547:72:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8134, "nodeType": "ExpressionStatement", "src": "18547:72:38"}, {"expression": {"arguments": [{"id": 8139, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8050, "src": "18658:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8140, "name": "collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8057, "src": "18673:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 8141, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18686:3:38", "memberName": "mgp", "nodeType": "MemberAccess", "referencedDeclaration": 9941, "src": "18673:16:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"id": 8142, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8076, "src": "18692:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "18673:25:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"id": 8135, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "18629:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 8137, "indexExpression": {"id": 8136, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8046, "src": "18641:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18629:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "id": 8138, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18653:4:38", "memberName": "_pay", "nodeType": "MemberAccess", "referencedDeclaration": 9884, "src": "18629:28:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Project_$9906_storage_ptr_$_t_address_$_t_uint256_$returns$__$bound_to$_t_struct$_Project_$9906_storage_ptr_$", "typeString": "function (struct Project storage pointer,address,uint256)"}}, "id": 8144, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18629:70:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8145, "nodeType": "ExpressionStatement", "src": "18629:70:38"}, {"eventCall": {"arguments": [{"id": 8147, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8046, "src": "18739:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 8148, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8048, "src": "18751:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 8149, "name": "_collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8050, "src": "18763:13:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"expression": {"id": 8150, "name": "collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8057, "src": "18778:12:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 8151, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18791:3:38", "memberName": "mgp", "nodeType": "MemberAccess", "referencedDeclaration": 9941, "src": "18778:16:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 8152, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8076, "src": "18796:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 8146, "name": "PaidCollaboratorRewards", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8767, "src": "18715:23:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint256,uint256)"}}, "id": 8153, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18715:88:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8154, "nodeType": "EmitStatement", "src": "18710:93:38"}]}, "documentation": {"id": 8044, "nodeType": "StructuredDocumentation", "src": "17561:264:38", "text": " @notice Pay fee to observer\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborator observer address\n @param _score Bonus score of collaborator\n Emit {PaidCollaboratorRewards}"}, "id": 8156, "implemented": true, "kind": "function", "modifiers": [], "name": "_payCollaboratorRewards", "nameLocation": "17839:23:38", "nodeType": "FunctionDefinition", "parameters": {"id": 8053, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8046, "mutability": "mutable", "name": "_projectId", "nameLocation": "17880:10:38", "nodeType": "VariableDeclaration", "scope": 8156, "src": "17872:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8045, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "17872:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8048, "mutability": "mutable", "name": "_packageId", "nameLocation": "17908:10:38", "nodeType": "VariableDeclaration", "scope": 8156, "src": "17900:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8047, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "17900:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8050, "mutability": "mutable", "name": "_collaborator", "nameLocation": "17936:13:38", "nodeType": "VariableDeclaration", "scope": 8156, "src": "17928:21:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8049, "name": "address", "nodeType": "ElementaryTypeName", "src": "17928:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8052, "mutability": "mutable", "name": "_score", "nameLocation": "17967:6:38", "nodeType": "VariableDeclaration", "scope": 8156, "src": "17959:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8051, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17959:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "17862:117:38"}, "returnParameters": {"id": 8054, "nodeType": "ParameterList", "parameters": [], "src": "17988:0:38"}, "scope": 8288, "src": "17830:980:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "private"}, {"body": {"id": 8210, "nodeType": "Block", "src": "19146:367:38", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"baseExpression": {"baseExpression": {"id": 8166, "name": "observerData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6794, "src": "19156:12:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Observer storage ref)))"}}, "id": 8170, "indexExpression": {"id": 8167, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8159, "src": "19169:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19156:24:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$_$", "typeString": "mapping(bytes32 => mapping(address => struct Observer storage ref))"}}, "id": 8171, "indexExpression": {"id": 8168, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8161, "src": "19181:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19156:36:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_address_$_t_struct$_Observer_$9961_storage_$", "typeString": "mapping(address => struct Observer storage ref)"}}, "id": 8172, "indexExpression": {"id": 8169, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8163, "src": "19193:9:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19156:47:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage", "typeString": "struct Observer storage ref"}}, "id": 8173, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19204:15:38", "memberName": "_payObserverFee", "nodeType": "MemberAccess", "referencedDeclaration": 9202, "src": "19156:63:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Observer_$9961_storage_ptr_$returns$__$bound_to$_t_struct$_Observer_$9961_storage_ptr_$", "typeString": "function (struct Observer storage pointer)"}}, "id": 8174, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19156:65:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8175, "nodeType": "ExpressionStatement", "src": "19156:65:38"}, {"assignments": [8177], "declarations": [{"constant": false, "id": 8177, "mutability": "mutable", "name": "amount_", "nameLocation": "19240:7:38", "nodeType": "VariableDeclaration", "scope": 8210, "src": "19232:15:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8176, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19232:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 8185, "initialValue": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"baseExpression": {"baseExpression": {"id": 8178, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "19250:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 8180, "indexExpression": {"id": 8179, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8159, "src": "19262:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19250:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 8182, "indexExpression": {"id": 8181, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8161, "src": "19274:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19250:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 8183, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19286:15:38", "memberName": "_getObserverFee", "nodeType": "MemberAccess", "referencedDeclaration": 9594, "src": "19250:51:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_struct$_Package_$9939_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer) view returns (uint256)"}}, "id": 8184, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19250:53:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "19232:71:38"}, {"expression": {"arguments": [{"id": 8192, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8177, "src": "19365:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"baseExpression": {"id": 8186, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "19313:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 8189, "indexExpression": {"id": 8187, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8159, "src": "19325:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19313:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 8190, "indexExpression": {"id": 8188, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8161, "src": "19337:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19313:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 8191, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19349:15:38", "memberName": "_payObserverFee", "nodeType": "MemberAccess", "referencedDeclaration": 9610, "src": "19313:51:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Package_$9939_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Package_$9939_storage_ptr_$", "typeString": "function (struct Package storage pointer,uint256)"}}, "id": 8193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19313:60:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8194, "nodeType": "ExpressionStatement", "src": "19313:60:38"}, {"expression": {"arguments": [{"id": 8199, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8163, "src": "19412:9:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 8200, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8177, "src": "19423:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"baseExpression": {"id": 8195, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "19383:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 8197, "indexExpression": {"id": 8196, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8159, "src": "19395:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19383:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "id": 8198, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19407:4:38", "memberName": "_pay", "nodeType": "MemberAccess", "referencedDeclaration": 9884, "src": "19383:28:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Project_$9906_storage_ptr_$_t_address_$_t_uint256_$returns$__$bound_to$_t_struct$_Project_$9906_storage_ptr_$", "typeString": "function (struct Project storage pointer,address,uint256)"}}, "id": 8201, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19383:48:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8202, "nodeType": "ExpressionStatement", "src": "19383:48:38"}, {"eventCall": {"arguments": [{"id": 8204, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8159, "src": "19463:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 8205, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8161, "src": "19475:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 8206, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8163, "src": "19487:9:38", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 8207, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8177, "src": "19498:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 8203, "name": "PaidObserverFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8755, "src": "19447:15:38", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (bytes32,bytes32,address,uint256)"}}, "id": 8208, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19447:59:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8209, "nodeType": "EmitStatement", "src": "19442:64:38"}]}, "documentation": {"id": 8157, "nodeType": "StructuredDocumentation", "src": "18816:203:38", "text": " @notice Pay fee to observer\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _observer observer address\n Emit {PaidObserverFee}"}, "id": 8211, "implemented": true, "kind": "function", "modifiers": [], "name": "_payObserverFee", "nameLocation": "19033:15:38", "nodeType": "FunctionDefinition", "parameters": {"id": 8164, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8159, "mutability": "mutable", "name": "_projectId", "nameLocation": "19066:10:38", "nodeType": "VariableDeclaration", "scope": 8211, "src": "19058:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8158, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "19058:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8161, "mutability": "mutable", "name": "_packageId", "nameLocation": "19094:10:38", "nodeType": "VariableDeclaration", "scope": 8211, "src": "19086:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8160, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "19086:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8163, "mutability": "mutable", "name": "_observer", "nameLocation": "19122:9:38", "nodeType": "VariableDeclaration", "scope": 8211, "src": "19114:17:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8162, "name": "address", "nodeType": "ElementaryTypeName", "src": "19114:7:38", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "19048:89:38"}, "returnParameters": {"id": 8165, "nodeType": "ParameterList", "parameters": [], "src": "19146:0:38"}, "scope": 8288, "src": "19024:489:38", "stateMutability": "nonpayable", "virtual": false, "visibility": "private"}, {"body": {"id": 8234, "nodeType": "Block", "src": "19743:102:38", "statements": [{"expression": {"arguments": [{"arguments": [{"arguments": [], "expression": {"argumentTypes": [], "id": 8222, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2204, "src": "19787:10:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 8223, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19787:12:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8225, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "19811:5:38", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 8226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "19817:6:38", "memberName": "number", "nodeType": "MemberAccess", "src": "19811:12:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"hexValue": "31", "id": 8227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "19826:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "19811:16:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 8224, "name": "blockhash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -5, "src": "19801:9:38", "typeDescriptions": {"typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) view returns (bytes32)"}}, "id": 8229, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19801:27:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, {"id": 8230, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8214, "src": "19830:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 8220, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "19770:3:38", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 8221, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "19774:12:38", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "19770:16:38", "typeDescriptions": {"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)"}}, "id": 8231, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19770:67:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 8219, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "19760:9:38", "typeDescriptions": {"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)"}}, "id": 8232, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19760:78:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "functionReturnParameters": 8218, "id": 8233, "nodeType": "Return", "src": "19753:85:38"}]}, "documentation": {"id": 8212, "nodeType": "StructuredDocumentation", "src": "19519:151:38", "text": " @notice Generates unique id hash based on _msgSender() address and previous block hash.\n @param _nonce nonce\n @return Id"}, "id": 8235, "implemented": true, "kind": "function", "modifiers": [], "name": "_generateId", "nameLocation": "19684:11:38", "nodeType": "FunctionDefinition", "parameters": {"id": 8215, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8214, "mutability": "mutable", "name": "_nonce", "nameLocation": "19704:6:38", "nodeType": "VariableDeclaration", "scope": 8235, "src": "19696:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8213, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19696:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "19695:16:38"}, "returnParameters": {"id": 8218, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8217, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 8235, "src": "19734:7:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8216, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "19734:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "19733:9:38"}, "scope": 8288, "src": "19675:170:38", "stateMutability": "view", "virtual": false, "visibility": "private"}, {"body": {"id": 8257, "nodeType": "Block", "src": "20032:127:38", "statements": [{"expression": {"id": 8245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 8241, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8239, "src": "20042:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"hexValue": "30", "id": 8243, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20067:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 8242, "name": "_generateId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8235, "src": "20055:11:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) view returns (bytes32)"}}, "id": 8244, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20055:14:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "src": "20042:27:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "id": 8246, "nodeType": "ExpressionStatement", "src": "20042:27:38"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"id": 8248, "name": "projectData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6761, "src": "20087:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Project_$9906_storage_$", "typeString": "mapping(bytes32 => struct Project storage ref)"}}, "id": 8250, "indexExpression": {"id": 8249, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8239, "src": "20099:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20087:23:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage", "typeString": "struct Project storage ref"}}, "id": 8251, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "20111:11:38", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9899, "src": "20087:35:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 8252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20126:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "20087:40:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6475706c69636174652070726f6a656374206964", "id": 8254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20129:22:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_68967a457615f77b7697a47076fb17bbf6f7d4825cfc89ced439d62c03e944a9", "typeString": "literal_string \"duplicate project id\""}, "value": "duplicate project id"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_68967a457615f77b7697a47076fb17bbf6f7d4825cfc89ced439d62c03e944a9", "typeString": "literal_string \"duplicate project id\""}], "id": 8247, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "20079:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 8255, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20079:73:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8256, "nodeType": "ExpressionStatement", "src": "20079:73:38"}]}, "documentation": {"id": 8236, "nodeType": "StructuredDocumentation", "src": "19851:104:38", "text": " @notice Returns a new unique project id.\n @return _projectId Id of the project."}, "id": 8258, "implemented": true, "kind": "function", "modifiers": [], "name": "_generateProjectId", "nameLocation": "19969:18:38", "nodeType": "FunctionDefinition", "parameters": {"id": 8237, "nodeType": "ParameterList", "parameters": [], "src": "19987:2:38"}, "returnParameters": {"id": 8240, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8239, "mutability": "mutable", "name": "_projectId", "nameLocation": "20020:10:38", "nodeType": "VariableDeclaration", "scope": 8258, "src": "20012:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8238, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "20012:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "20011:20:38"}, "scope": 8288, "src": "19960:199:38", "stateMutability": "view", "virtual": false, "visibility": "private"}, {"body": {"id": 8286, "nodeType": "Block", "src": "20449:144:38", "statements": [{"expression": {"id": 8272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 8268, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8266, "src": "20459:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"id": 8270, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8263, "src": "20484:6:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 8269, "name": "_generateId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8235, "src": "20472:11:38", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) view returns (bytes32)"}}, "id": 8271, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20472:19:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "src": "20459:32:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "id": 8273, "nodeType": "ExpressionStatement", "src": "20459:32:38"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"baseExpression": {"baseExpression": {"id": 8275, "name": "packageData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6768, "src": "20509:11:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$_$", "typeString": "mapping(bytes32 => mapping(bytes32 => struct Package storage ref))"}}, "id": 8277, "indexExpression": {"id": 8276, "name": "_projectId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8261, "src": "20521:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20509:23:38", "typeDescriptions": {"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Package_$9939_storage_$", "typeString": "mapping(bytes32 => struct Package storage ref)"}}, "id": 8279, "indexExpression": {"id": 8278, "name": "_packageId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8266, "src": "20533:10:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20509:35:38", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage", "typeString": "struct Package storage ref"}}, "id": 8280, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "20545:11:38", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9924, "src": "20509:47:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 8281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20560:1:38", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "20509:52:38", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6475706c6963617465207061636b616765206964", "id": 8283, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20563:22:38", "typeDescriptions": {"typeIdentifier": "t_stringliteral_96906676e0f9aec65d7630ac3179e5c1c36d7eb4ebcae6a9a481730b171f3eed", "typeString": "literal_string \"duplicate package id\""}, "value": "duplicate package id"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_96906676e0f9aec65d7630ac3179e5c1c36d7eb4ebcae6a9a481730b171f3eed", "typeString": "literal_string \"duplicate package id\""}], "id": 8274, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "20501:7:38", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 8284, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20501:85:38", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8285, "nodeType": "ExpressionStatement", "src": "20501:85:38"}]}, "documentation": {"id": 8259, "nodeType": "StructuredDocumentation", "src": "20165:173:38", "text": " @notice Returns a new unique package id.\n @param _projectId Id of the project\n @param _nonce nonce\n @return _packageId Id of the package"}, "id": 8287, "implemented": true, "kind": "function", "modifiers": [], "name": "_generatePackageId", "nameLocation": "20352:18:38", "nodeType": "FunctionDefinition", "parameters": {"id": 8264, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8261, "mutability": "mutable", "name": "_projectId", "nameLocation": "20379:10:38", "nodeType": "VariableDeclaration", "scope": 8287, "src": "20371:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8260, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "20371:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8263, "mutability": "mutable", "name": "_nonce", "nameLocation": "20399:6:38", "nodeType": "VariableDeclaration", "scope": 8287, "src": "20391:14:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8262, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20391:7:38", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "20370:36:38"}, "returnParameters": {"id": 8267, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8266, "mutability": "mutable", "name": "_packageId", "nameLocation": "20437:10:38", "nodeType": "VariableDeclaration", "scope": 8287, "src": "20429:18:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8265, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "20429:7:38", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "20428:20:38"}, "scope": 8288, "src": "20343:250:38", "stateMutability": "view", "virtual": false, "visibility": "private"}], "scope": 8289, "src": "860:19735:38", "usedErrors": []}], "src": "32:20564:38"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/TokenFactory.sol": {"AST": {"absolutePath": "contracts/TokenFactory.sol", "exportedSymbols": {"Clones": [2888], "ERC165CheckerUpgradeable": [2639], "INFTReward": [8641], "IOUToken": [5429], "ITokenFactory": [8959], "OwnableUpgradeable": [131], "TokenFactory": [8470]}, "id": 8471, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 8290, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:39"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "id": 8292, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8471, "sourceUnit": 132, "src": "56:103:39", "symbolAliases": [{"foreign": {"id": 8291, "name": "OwnableUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 131, "src": "65:18:39", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol", "id": 8294, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8471, "sourceUnit": 2640, "src": "160:128:39", "symbolAliases": [{"foreign": {"id": 8293, "name": "ERC165CheckerUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2639, "src": "169:24:39", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "@openzeppelin/contracts/proxy/Clones.sol", "file": "@openzeppelin/contracts/proxy/Clones.sol", "id": 8296, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8471, "sourceUnit": 2889, "src": "289:66:39", "symbolAliases": [{"foreign": {"id": 8295, "name": "Clones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2888, "src": "298:6:39", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/interfaces/ITokenFactory.sol", "file": "./interfaces/ITokenFactory.sol", "id": 8298, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8471, "sourceUnit": 8960, "src": "356:63:39", "symbolAliases": [{"foreign": {"id": 8297, "name": "ITokenFactory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8959, "src": "365:13:39", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/IOUToken.sol", "file": "./IOUToken.sol", "id": 8300, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8471, "sourceUnit": 5430, "src": "420:42:39", "symbolAliases": [{"foreign": {"id": 8299, "name": "IOUToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5429, "src": "429:8:39", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/interfaces/INFTReward.sol", "file": "./interfaces/INFTReward.sol", "id": 8302, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8471, "sourceUnit": 8642, "src": "463:57:39", "symbolAliases": [{"foreign": {"id": 8301, "name": "INFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8641, "src": "472:10:39", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 8304, "name": "OwnableUpgradeable", "nameLocations": ["644:18:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 131, "src": "644:18:39"}, "id": 8305, "nodeType": "InheritanceSpecifier", "src": "644:18:39"}, {"baseName": {"id": 8306, "name": "ITokenFactory", "nameLocations": ["664:13:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 8959, "src": "664:13:39"}, "id": 8307, "nodeType": "InheritanceSpecifier", "src": "664:13:39"}], "canonicalName": "TokenFactory", "contractDependencies": [5429], "contractKind": "contract", "documentation": {"id": 8303, "nodeType": "StructuredDocumentation", "src": "522:96:39", "text": " @title TokenFactory Contract\n @notice This contract using for creating IOU Token"}, "fullyImplemented": true, "id": 8470, "linearizedBaseContracts": [8470, 8959, 131, 2219, 282], "name": "TokenFactory", "nameLocation": "628:12:39", "nodeType": "ContractDefinition", "nodes": [{"global": false, "id": 8310, "libraryName": {"id": 8308, "name": "ERC165CheckerUpgradeable", "nameLocations": ["690:24:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 2639, "src": "690:24:39"}, "nodeType": "UsingForDirective", "src": "684:43:39", "typeName": {"id": 8309, "name": "address", "nodeType": "ElementaryTypeName", "src": "719:7:39", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}}, {"constant": false, "functionSelector": "a4e8aaae", "id": 8312, "mutability": "mutable", "name": "learnToEarn", "nameLocation": "791:11:39", "nodeType": "VariableDeclaration", "scope": 8470, "src": "776:26:39", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8311, "name": "address", "nodeType": "ElementaryTypeName", "src": "776:7:39", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "public"}, {"constant": false, "documentation": {"id": 8313, "nodeType": "StructuredDocumentation", "src": "809:120:39", "text": " @dev NFTReward contract interface\n Using this contract to deploy new contract NFT for user"}, "functionSelector": "c455ed40", "id": 8316, "mutability": "mutable", "name": "templateNFTReward", "nameLocation": "952:17:39", "nodeType": "VariableDeclaration", "scope": 8470, "src": "934:35:39", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}, "typeName": {"id": 8315, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 8314, "name": "INFTReward", "nameLocations": ["934:10:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 8641, "src": "934:10:39"}, "referencedDeclaration": 8641, "src": "934:10:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}, "visibility": "public"}, {"body": {"id": 8346, "nodeType": "Block", "src": "1175:191:39", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "id": 8325, "name": "__Ownable_init", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26, "src": "1185:14:39", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()"}}, "id": 8326, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1185:16:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8327, "nodeType": "ExpressionStatement", "src": "1185:16:39"}, {"expression": {"arguments": [{"arguments": [{"expression": {"arguments": [{"id": 8335, "name": "INFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8641, "src": "1264:10:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_INFTReward_$8641_$", "typeString": "type(contract INFTReward)"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_type$_t_contract$_INFTReward_$8641_$", "typeString": "type(contract INFTReward)"}], "id": 8334, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "1259:4:39", "typeDescriptions": {"typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure"}}, "id": 8336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1259:16:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_magic_meta_type_t_contract$_INFTReward_$8641", "typeString": "type(contract INFTReward)"}}, "id": 8337, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1276:11:39", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "1259:28:39", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "expression": {"arguments": [{"id": 8331, "name": "_nftRewared", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8320, "src": "1228:11:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}], "id": 8330, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1220:7:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 8329, "name": "address", "nodeType": "ElementaryTypeName", "src": "1220:7:39", "typeDescriptions": {}}}, "id": 8332, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1220:20:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8333, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1241:17:39", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 2495, "src": "1220:38:39", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$bound_to$_t_address_$", "typeString": "function (address,bytes4) view returns (bool)"}}, "id": 8338, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1220:68:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "496e76616c6964204e46545265776172642061646472657373", "id": 8339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1290:27:39", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b6c6bbd82dadd86e4a801f7b97b5c6d0b6b5a3163d3c3e4e26f9a41061aa205d", "typeString": "literal_string \"Invalid NFTReward address\""}, "value": "Invalid NFTReward address"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_b6c6bbd82dadd86e4a801f7b97b5c6d0b6b5a3163d3c3e4e26f9a41061aa205d", "typeString": "literal_string \"Invalid NFTReward address\""}], "id": 8328, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1212:7:39", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 8340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1212:106:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8341, "nodeType": "ExpressionStatement", "src": "1212:106:39"}, {"expression": {"id": 8344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 8342, "name": "templateNFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8316, "src": "1328:17:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 8343, "name": "_nftRewared", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8320, "src": "1348:11:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}, "src": "1328:31:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}, "id": 8345, "nodeType": "ExpressionStatement", "src": "1328:31:39"}]}, "documentation": {"id": 8317, "nodeType": "StructuredDocumentation", "src": "976:131:39", "text": " @notice Initialize of contract (replace for constructor)\n @param _nftRewared Address of NFTReward contract"}, "functionSelector": "c4d66de8", "id": 8347, "implemented": true, "kind": "function", "modifiers": [{"id": 8323, "kind": "modifierInvocation", "modifierName": {"id": 8322, "name": "initializer", "nameLocations": ["1163:11:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 202, "src": "1163:11:39"}, "nodeType": "ModifierInvocation", "src": "1163:11:39"}], "name": "initialize", "nameLocation": "1121:10:39", "nodeType": "FunctionDefinition", "parameters": {"id": 8321, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8320, "mutability": "mutable", "name": "_nftRewared", "nameLocation": "1143:11:39", "nodeType": "VariableDeclaration", "scope": 8347, "src": "1132:22:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}, "typeName": {"id": 8319, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 8318, "name": "INFTReward", "nameLocations": ["1132:10:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 8641, "src": "1132:10:39"}, "referencedDeclaration": 8641, "src": "1132:10:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}, "visibility": "internal"}], "src": "1131:24:39"}, "returnParameters": {"id": 8324, "nodeType": "ParameterList", "parameters": [], "src": "1175:0:39"}, "scope": 8470, "src": "1112:254:39", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"body": {"id": 8378, "nodeType": "Block", "src": "1589:228:39", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 8361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 8356, "name": "_learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8350, "src": "1607:12:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 8359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1631:1:39", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 8358, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1623:7:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 8357, "name": "address", "nodeType": "ElementaryTypeName", "src": "1623:7:39", "typeDescriptions": {}}}, "id": 8360, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1623:10:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1607:26:39", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6c6561726e546f4561726e2061646472657373206973206e6f742076616c6964", "id": 8362, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1635:34:39", "typeDescriptions": {"typeIdentifier": "t_stringliteral_495b5e6e54469f16ec20c98c65a15cdc1abd6eea5f21b2ecb4a605c54561cec3", "typeString": "literal_string \"learnToEarn address is not valid\""}, "value": "learnToEarn address is not valid"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_495b5e6e54469f16ec20c98c65a15cdc1abd6eea5f21b2ecb4a605c54561cec3", "typeString": "literal_string \"learnToEarn address is not valid\""}], "id": 8355, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1599:7:39", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 8363, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1599:71:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8364, "nodeType": "ExpressionStatement", "src": "1599:71:39"}, {"assignments": [8366], "declarations": [{"constant": false, "id": 8366, "mutability": "mutable", "name": "oldLearnToEarn", "nameLocation": "1688:14:39", "nodeType": "VariableDeclaration", "scope": 8378, "src": "1680:22:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8365, "name": "address", "nodeType": "ElementaryTypeName", "src": "1680:7:39", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 8368, "initialValue": {"id": 8367, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8312, "src": "1705:11:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "1680:36:39"}, {"expression": {"id": 8371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 8369, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8312, "src": "1726:11:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 8370, "name": "_learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8350, "src": "1740:12:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "1726:26:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8372, "nodeType": "ExpressionStatement", "src": "1726:26:39"}, {"eventCall": {"arguments": [{"id": 8374, "name": "oldLearnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8366, "src": "1782:14:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 8375, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8312, "src": "1798:11:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "id": 8373, "name": "SetLearnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8930, "src": "1767:14:39", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)"}}, "id": 8376, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1767:43:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8377, "nodeType": "EmitStatement", "src": "1762:48:39"}]}, "documentation": {"id": 8348, "nodeType": "StructuredDocumentation", "src": "1372:147:39", "text": " @notice Update LearnToEarn contract address\n @param _learnToEarn LearnToEarn contract address\n Emit {SetLearnToEarn}"}, "functionSelector": "3025928f", "id": 8379, "implemented": true, "kind": "function", "modifiers": [{"id": 8353, "kind": "modifierInvocation", "modifierName": {"id": 8352, "name": "onlyOwner", "nameLocations": ["1579:9:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 45, "src": "1579:9:39"}, "nodeType": "ModifierInvocation", "src": "1579:9:39"}], "name": "setLearnToEarn", "nameLocation": "1533:14:39", "nodeType": "FunctionDefinition", "parameters": {"id": 8351, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8350, "mutability": "mutable", "name": "_learnToEarn", "nameLocation": "1556:12:39", "nodeType": "VariableDeclaration", "scope": 8379, "src": "1548:20:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8349, "name": "address", "nodeType": "ElementaryTypeName", "src": "1548:7:39", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1547:22:39"}, "returnParameters": {"id": 8354, "nodeType": "ParameterList", "parameters": [], "src": "1589:0:39"}, "scope": 8470, "src": "1524:293:39", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8946], "body": {"id": 8411, "nodeType": "Block", "src": "2259:139:39", "statements": [{"expression": {"id": 8404, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 8391, "name": "token_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8389, "src": "2269:6:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"arguments": [{"arguments": [{"expression": {"id": 8397, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "2299:3:39", "typeDescriptions": {"typeIdentifier": "t_magic_message", "typeString": "msg"}}, "id": 8398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2303:6:39", "memberName": "sender", "nodeType": "MemberAccess", "src": "2299:10:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 8399, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8382, "src": "2311:12:39", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 8400, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8384, "src": "2325:5:39", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 8401, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8386, "src": "2332:7:39", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "id": 8396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "2286:12:39", "typeDescriptions": {"typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_IOUToken_$5429_$", "typeString": "function (address,uint256,string memory,string memory) returns (contract IOUToken)"}, "typeName": {"id": 8395, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 8394, "name": "IOUToken", "nameLocations": ["2290:8:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 5429, "src": "2290:8:39"}, "referencedDeclaration": 5429, "src": "2290:8:39", "typeDescriptions": {"typeIdentifier": "t_contract$_IOUToken_$5429", "typeString": "contract IOUToken"}}}, "id": 8402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2286:54:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IOUToken_$5429", "typeString": "contract IOUToken"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_IOUToken_$5429", "typeString": "contract IOUToken"}], "id": 8393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2278:7:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 8392, "name": "address", "nodeType": "ElementaryTypeName", "src": "2278:7:39", "typeDescriptions": {}}}, "id": 8403, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2278:63:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2269:72:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8405, "nodeType": "ExpressionStatement", "src": "2269:72:39"}, {"eventCall": {"arguments": [{"id": 8407, "name": "token_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8389, "src": "2370:6:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 8408, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8382, "src": "2378:12:39", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "id": 8406, "name": "DeployedToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8924, "src": "2356:13:39", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)"}}, "id": 8409, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2356:35:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8410, "nodeType": "EmitStatement", "src": "2351:40:39"}]}, "documentation": {"id": 8380, "nodeType": "StructuredDocumentation", "src": "1822:281:39", "text": " @notice Deploys IOUT with totalSupply equal to project budget\n @param _totalSupply Token total supply\n @param _name Name of token\n @param _symbol Symbol of token\n @return token_ IOU token address\n \n emit {DeployedToken} events"}, "functionSelector": "da68ed12", "id": 8412, "implemented": true, "kind": "function", "modifiers": [], "name": "deployToken", "nameLocation": "2117:11:39", "nodeType": "FunctionDefinition", "parameters": {"id": 8387, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8382, "mutability": "mutable", "name": "_totalSupply", "nameLocation": "2146:12:39", "nodeType": "VariableDeclaration", "scope": 8412, "src": "2138:20:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8381, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2138:7:39", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8384, "mutability": "mutable", "name": "_name", "nameLocation": "2182:5:39", "nodeType": "VariableDeclaration", "scope": 8412, "src": "2168:19:39", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8383, "name": "string", "nodeType": "ElementaryTypeName", "src": "2168:6:39", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 8386, "mutability": "mutable", "name": "_symbol", "nameLocation": "2211:7:39", "nodeType": "VariableDeclaration", "scope": 8412, "src": "2197:21:39", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8385, "name": "string", "nodeType": "ElementaryTypeName", "src": "2197:6:39", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2128:96:39"}, "returnParameters": {"id": 8390, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8389, "mutability": "mutable", "name": "token_", "nameLocation": "2251:6:39", "nodeType": "VariableDeclaration", "scope": 8412, "src": "2243:14:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8388, "name": "address", "nodeType": "ElementaryTypeName", "src": "2243:7:39", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2242:16:39"}, "scope": 8470, "src": "2108:290:39", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"baseFunctions": [8958], "body": {"id": 8468, "nodeType": "Block", "src": "2861:299:39", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_address", "typeString": "address"}, "id": 8430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 8425, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8312, "src": "2879:11:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": {"arguments": [{"hexValue": "30", "id": 8428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2902:1:39", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}], "id": 8427, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2894:7:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 8426, "name": "address", "nodeType": "ElementaryTypeName", "src": "2894:7:39", "typeDescriptions": {}}}, "id": 8429, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2894:10:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "2879:25:39", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "4c6561726e546f4561726e2061646472657373206973206e6f742076616c6964", "id": 8431, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2906:34:39", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e45ddec8cf1d5d9cee2b8ead83e3387b5c6f4942841363d86bcd1848a75adc94", "typeString": "literal_string \"LearnToEarn address is not valid\""}, "value": "LearnToEarn address is not valid"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_e45ddec8cf1d5d9cee2b8ead83e3387b5c6f4942841363d86bcd1848a75adc94", "typeString": "literal_string \"LearnToEarn address is not valid\""}], "id": 8424, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2871:7:39", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 8432, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2871:70:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8433, "nodeType": "ExpressionStatement", "src": "2871:70:39"}, {"assignments": [8436], "declarations": [{"constant": false, "id": 8436, "mutability": "mutable", "name": "nft_", "nameLocation": "2962:4:39", "nodeType": "VariableDeclaration", "scope": 8468, "src": "2951:15:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}, "typeName": {"id": 8435, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 8434, "name": "INFTReward", "nameLocations": ["2951:10:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 8641, "src": "2951:10:39"}, "referencedDeclaration": 8641, "src": "2951:10:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}, "visibility": "internal"}], "id": 8446, "initialValue": {"arguments": [{"arguments": [{"arguments": [{"id": 8442, "name": "templateNFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8316, "src": "3001:17:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}], "id": 8441, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2993:7:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 8440, "name": "address", "nodeType": "ElementaryTypeName", "src": "2993:7:39", "typeDescriptions": {}}}, "id": 8443, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2993:26:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 8438, "name": "Clones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2888, "src": "2980:6:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_Clones_$2888_$", "typeString": "type(library Clones)"}}, "id": 8439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2987:5:39", "memberName": "clone", "nodeType": "MemberAccess", "referencedDeclaration": 2831, "src": "2980:12:39", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_address_$", "typeString": "function (address) returns (address)"}}, "id": 8444, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2980:40:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 8437, "name": "INFTReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8641, "src": "2969:10:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_INFTReward_$8641_$", "typeString": "type(contract INFTReward)"}}, "id": 8445, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2969:52:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}, "nodeType": "VariableDeclarationStatement", "src": "2951:70:39"}, {"expression": {"arguments": [{"id": 8450, "name": "learnToEarn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8312, "src": "3047:11:39", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 8451, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8415, "src": "3060:5:39", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 8452, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8417, "src": "3067:7:39", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 8453, "name": "_uri", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8419, "src": "3076:4:39", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 8447, "name": "nft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8436, "src": "3031:4:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}, "id": 8449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3036:10:39", "memberName": "initialize", "nodeType": "MemberAccess", "referencedDeclaration": 8640, "src": "3031:15:39", "typeDescriptions": {"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,string memory,string memory,string memory) external"}}, "id": 8454, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3031:50:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8455, "nodeType": "ExpressionStatement", "src": "3031:50:39"}, {"eventCall": {"arguments": [{"arguments": [{"id": 8459, "name": "nft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8436, "src": "3117:4:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}], "id": 8458, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3109:7:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 8457, "name": "address", "nodeType": "ElementaryTypeName", "src": "3109:7:39", "typeDescriptions": {}}}, "id": 8460, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3109:13:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 8456, "name": "DeployedNFT", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8934, "src": "3097:11:39", "typeDescriptions": {"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)"}}, "id": 8461, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3097:26:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8462, "nodeType": "EmitStatement", "src": "3092:31:39"}, {"expression": {"arguments": [{"id": 8465, "name": "nft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8436, "src": "3148:4:39", "typeDescriptions": {"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_INFTReward_$8641", "typeString": "contract INFTReward"}], "id": 8464, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3140:7:39", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 8463, "name": "address", "nodeType": "ElementaryTypeName", "src": "3140:7:39", "typeDescriptions": {}}}, "id": 8466, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3140:13:39", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 8423, "id": 8467, "nodeType": "Return", "src": "3133:20:39"}]}, "documentation": {"id": 8413, "nodeType": "StructuredDocumentation", "src": "2408:338:39", "text": " @dev Using Clones library to clone a contract instead of deploying new contract\n @notice Deploy new contract to mint NFT\n @param _name Name of NFT\n @param _symbol Symbol of NFT\n @param _uri Ipfs of NFT\n @return address(nft_) address of new contract\n \n emit {DeployedNFT} events"}, "functionSelector": "7309fe22", "id": 8469, "implemented": true, "kind": "function", "modifiers": [], "name": "deployNFT", "nameLocation": "2760:9:39", "nodeType": "FunctionDefinition", "parameters": {"id": 8420, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8415, "mutability": "mutable", "name": "_name", "nameLocation": "2784:5:39", "nodeType": "VariableDeclaration", "scope": 8469, "src": "2770:19:39", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8414, "name": "string", "nodeType": "ElementaryTypeName", "src": "2770:6:39", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 8417, "mutability": "mutable", "name": "_symbol", "nameLocation": "2805:7:39", "nodeType": "VariableDeclaration", "scope": 8469, "src": "2791:21:39", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8416, "name": "string", "nodeType": "ElementaryTypeName", "src": "2791:6:39", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 8419, "mutability": "mutable", "name": "_uri", "nameLocation": "2828:4:39", "nodeType": "VariableDeclaration", "scope": 8469, "src": "2814:18:39", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8418, "name": "string", "nodeType": "ElementaryTypeName", "src": "2814:6:39", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "2769:64:39"}, "returnParameters": {"id": 8423, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8422, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 8469, "src": "2852:7:39", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8421, "name": "address", "nodeType": "ElementaryTypeName", "src": "2852:7:39", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2851:9:39"}, "scope": 8470, "src": "2751:409:39", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 8471, "src": "619:2543:39", "usedErrors": []}], "src": "32:3131:39"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/ILearnToEarn.sol": {"AST": {"absolutePath": "contracts/interfaces/ILearnToEarn.sol", "exportedSymbols": {"Course": [8497], "ILearnToEarn": [8606], "Learner": [8507]}, "id": 8607, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 8472, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:40"}, {"canonicalName": "Course", "id": 8497, "members": [{"constant": false, "id": 8474, "mutability": "mutable", "name": "creator", "nameLocation": "85:7:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "77:15:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8473, "name": "address", "nodeType": "ElementaryTypeName", "src": "77:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8476, "mutability": "mutable", "name": "rewardAddress", "nameLocation": "106:13:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "98:21:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8475, "name": "address", "nodeType": "ElementaryTypeName", "src": "98:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8478, "mutability": "mutable", "name": "budget", "nameLocation": "133:6:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "125:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8477, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "125:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8480, "mutability": "mutable", "name": "budgetAvailable", "nameLocation": "153:15:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "145:23:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8479, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "145:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8482, "mutability": "mutable", "name": "bonus", "nameLocation": "182:5:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "174:13:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8481, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "174:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8484, "mutability": "mutable", "name": "totalLearnersClaimedBonus", "nameLocation": "201:25:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "193:33:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8483, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "193:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8486, "mutability": "mutable", "name": "timeCreated", "nameLocation": "240:11:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "232:19:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8485, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "232:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8488, "mutability": "mutable", "name": "timeEndBonus", "nameLocation": "265:12:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "257:20:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8487, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "257:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8490, "mutability": "mutable", "name": "timeRemoved", "nameLocation": "291:11:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "283:19:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8489, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "283:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8492, "mutability": "mutable", "name": "isBonusToken", "nameLocation": "313:12:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "308:17:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 8491, "name": "bool", "nodeType": "ElementaryTypeName", "src": "308:4:40", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 8494, "mutability": "mutable", "name": "canMintNFT", "nameLocation": "336:10:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "331:15:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 8493, "name": "bool", "nodeType": "ElementaryTypeName", "src": "331:4:40", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 8496, "mutability": "mutable", "name": "isUsingDuration", "nameLocation": "357:15:40", "nodeType": "VariableDeclaration", "scope": 8497, "src": "352:20:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 8495, "name": "bool", "nodeType": "ElementaryTypeName", "src": "352:4:40", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "name": "Course", "nameLocation": "64:6:40", "nodeType": "StructDefinition", "scope": 8607, "src": "57:318:40", "visibility": "public"}, {"canonicalName": "Learner", "id": 8507, "members": [{"constant": false, "id": 8499, "mutability": "mutable", "name": "timeStarted", "nameLocation": "406:11:40", "nodeType": "VariableDeclaration", "scope": 8507, "src": "398:19:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8498, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "398:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8501, "mutability": "mutable", "name": "timeCompleted", "nameLocation": "431:13:40", "nodeType": "VariableDeclaration", "scope": 8507, "src": "423:21:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8500, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "423:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8503, "mutability": "mutable", "name": "timeRewarded", "nameLocation": "458:12:40", "nodeType": "VariableDeclaration", "scope": 8507, "src": "450:20:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8502, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "450:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8506, "mutability": "mutable", "name": "nftIds", "nameLocation": "486:6:40", "nodeType": "VariableDeclaration", "scope": 8507, "src": "476:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}, "typeName": {"baseType": {"id": 8504, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "476:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 8505, "nodeType": "ArrayTypeName", "src": "476:9:40", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}}, "visibility": "internal"}], "name": "Learner", "nameLocation": "384:7:40", "nodeType": "StructDefinition", "scope": 8607, "src": "377:118:40", "visibility": "public"}, {"abstract": false, "baseContracts": [], "canonicalName": "ILearnToEarn", "contractDependencies": [], "contractKind": "interface", "fullyImplemented": false, "id": 8606, "linearizedBaseContracts": [8606], "name": "ILearnToEarn", "nameLocation": "508:12:40", "nodeType": "ContractDefinition", "nodes": [{"anonymous": false, "eventSelector": "ef048bc89a4d92f598f18e11c600d5cc675b387c770c6c49012d166043db64a2", "id": 8519, "name": "CreatedCourse", "nameLocation": "533:13:40", "nodeType": "EventDefinition", "parameters": {"id": 8518, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8509, "indexed": true, "mutability": "mutable", "name": "courseId", "nameLocation": "563:8:40", "nodeType": "VariableDeclaration", "scope": 8519, "src": "547:24:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8508, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "547:7:40", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8511, "indexed": false, "mutability": "mutable", "name": "creator", "nameLocation": "581:7:40", "nodeType": "VariableDeclaration", "scope": 8519, "src": "573:15:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8510, "name": "address", "nodeType": "ElementaryTypeName", "src": "573:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8513, "indexed": false, "mutability": "mutable", "name": "token", "nameLocation": "598:5:40", "nodeType": "VariableDeclaration", "scope": 8519, "src": "590:13:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8512, "name": "address", "nodeType": "ElementaryTypeName", "src": "590:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8515, "indexed": false, "mutability": "mutable", "name": "bonus", "nameLocation": "613:5:40", "nodeType": "VariableDeclaration", "scope": 8519, "src": "605:13:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8514, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "605:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8517, "indexed": false, "mutability": "mutable", "name": "timeStarted", "nameLocation": "628:11:40", "nodeType": "VariableDeclaration", "scope": 8519, "src": "620:19:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8516, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "620:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "546:94:40"}, "src": "527:114:40"}, {"anonymous": false, "eventSelector": "5cd42cadabfcfe861e1f12322ae257de37d1240ae38863b4c8b0b50fd0e32a26", "id": 8525, "name": "AddedBudget", "nameLocation": "652:11:40", "nodeType": "EventDefinition", "parameters": {"id": 8524, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8521, "indexed": true, "mutability": "mutable", "name": "courseId", "nameLocation": "680:8:40", "nodeType": "VariableDeclaration", "scope": 8525, "src": "664:24:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8520, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "664:7:40", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8523, "indexed": false, "mutability": "mutable", "name": "budget", "nameLocation": "698:6:40", "nodeType": "VariableDeclaration", "scope": 8525, "src": "690:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8522, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "690:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "663:42:40"}, "src": "646:60:40"}, {"anonymous": false, "eventSelector": "b14f5aab91d7f1973be0a7f66b9f50b5da882aaf454b27c50d6a9d7b2172616c", "id": 8531, "name": "CompletedCourse", "nameLocation": "717:15:40", "nodeType": "EventDefinition", "parameters": {"id": 8530, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8527, "indexed": true, "mutability": "mutable", "name": "courseId", "nameLocation": "749:8:40", "nodeType": "VariableDeclaration", "scope": 8531, "src": "733:24:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8526, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "733:7:40", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8529, "indexed": false, "mutability": "mutable", "name": "learner", "nameLocation": "767:7:40", "nodeType": "VariableDeclaration", "scope": 8531, "src": "759:15:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8528, "name": "address", "nodeType": "ElementaryTypeName", "src": "759:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "732:43:40"}, "src": "711:65:40"}, {"anonymous": false, "eventSelector": "d7168ab8576ce4d8336598fe8c588ccb843823a522fe33c98365c3e082daa2ca", "id": 8544, "name": "ClaimedReward", "nameLocation": "787:13:40", "nodeType": "EventDefinition", "parameters": {"id": 8543, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8533, "indexed": true, "mutability": "mutable", "name": "courseId", "nameLocation": "817:8:40", "nodeType": "VariableDeclaration", "scope": 8544, "src": "801:24:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8532, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "801:7:40", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8535, "indexed": true, "mutability": "mutable", "name": "learner", "nameLocation": "843:7:40", "nodeType": "VariableDeclaration", "scope": 8544, "src": "827:23:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8534, "name": "address", "nodeType": "ElementaryTypeName", "src": "827:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8537, "indexed": true, "mutability": "mutable", "name": "rewardAddress", "nameLocation": "868:13:40", "nodeType": "VariableDeclaration", "scope": 8544, "src": "852:29:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8536, "name": "address", "nodeType": "ElementaryTypeName", "src": "852:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8539, "indexed": false, "mutability": "mutable", "name": "bonus", "nameLocation": "891:5:40", "nodeType": "VariableDeclaration", "scope": 8544, "src": "883:13:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8538, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "883:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8542, "indexed": false, "mutability": "mutable", "name": "nftIds", "nameLocation": "908:6:40", "nodeType": "VariableDeclaration", "scope": 8544, "src": "898:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]"}, "typeName": {"baseType": {"id": 8540, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "898:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 8541, "nodeType": "ArrayTypeName", "src": "898:9:40", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}}, "visibility": "internal"}], "src": "800:115:40"}, "src": "781:135:40"}, {"anonymous": false, "eventSelector": "aa558890c86253324a06b9e861f61281fd0810f170827987572e7123581a779f", "id": 8552, "name": "WithdrawnBudget", "nameLocation": "927:15:40", "nodeType": "EventDefinition", "parameters": {"id": 8551, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8546, "indexed": true, "mutability": "mutable", "name": "courseId", "nameLocation": "959:8:40", "nodeType": "VariableDeclaration", "scope": 8552, "src": "943:24:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8545, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "943:7:40", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8548, "indexed": true, "mutability": "mutable", "name": "creator", "nameLocation": "985:7:40", "nodeType": "VariableDeclaration", "scope": 8552, "src": "969:23:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8547, "name": "address", "nodeType": "ElementaryTypeName", "src": "969:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8550, "indexed": false, "mutability": "mutable", "name": "amount", "nameLocation": "1002:6:40", "nodeType": "VariableDeclaration", "scope": 8552, "src": "994:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8549, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "994:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "942:67:40"}, "src": "921:89:40"}, {"anonymous": false, "eventSelector": "10156d1d3e0caa069c8a10325a1dae1512b2ff6bb941c18e16194970746f30a4", "id": 8558, "name": "RemovedCourse", "nameLocation": "1021:13:40", "nodeType": "EventDefinition", "parameters": {"id": 8557, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8554, "indexed": true, "mutability": "mutable", "name": "courseId", "nameLocation": "1051:8:40", "nodeType": "VariableDeclaration", "scope": 8558, "src": "1035:24:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8553, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1035:7:40", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8556, "indexed": true, "mutability": "mutable", "name": "creator", "nameLocation": "1077:7:40", "nodeType": "VariableDeclaration", "scope": 8558, "src": "1061:23:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8555, "name": "address", "nodeType": "ElementaryTypeName", "src": "1061:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1034:51:40"}, "src": "1015:71:40"}, {"documentation": {"id": 8559, "nodeType": "StructuredDocumentation", "src": "1092:603:40", "text": " @notice Create new course\n @param _rewardAddress Address of token that reward to student after completing course\n @param _budget Total tokens/NFTs that reward\n @param _bonus Bonus when learner completed course\n @param _timeStart Start time of course\n @param _timeEndBonus end date will finish bonus or duration to receive bonus after enrolling in course \n @param _isUsingDuration Using duration for rewarding (true) or using end time (false)\n @param _isBonusToken Awards is token (true) or NFT (false)\n emit {CreatedCourse} event"}, "functionSelector": "b149fd18", "id": 8576, "implemented": false, "kind": "function", "modifiers": [], "name": "createCourse", "nameLocation": "1709:12:40", "nodeType": "FunctionDefinition", "parameters": {"id": 8574, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8561, "mutability": "mutable", "name": "_rewardAddress", "nameLocation": "1730:14:40", "nodeType": "VariableDeclaration", "scope": 8576, "src": "1722:22:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8560, "name": "address", "nodeType": "ElementaryTypeName", "src": "1722:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8563, "mutability": "mutable", "name": "_budget", "nameLocation": "1754:7:40", "nodeType": "VariableDeclaration", "scope": 8576, "src": "1746:15:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8562, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1746:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8565, "mutability": "mutable", "name": "_bonus", "nameLocation": "1771:6:40", "nodeType": "VariableDeclaration", "scope": 8576, "src": "1763:14:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8564, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1763:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8567, "mutability": "mutable", "name": "_timeStart", "nameLocation": "1787:10:40", "nodeType": "VariableDeclaration", "scope": 8576, "src": "1779:18:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8566, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1779:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8569, "mutability": "mutable", "name": "_timeEndBonus", "nameLocation": "1807:13:40", "nodeType": "VariableDeclaration", "scope": 8576, "src": "1799:21:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8568, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1799:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8571, "mutability": "mutable", "name": "_isUsingDuration", "nameLocation": "1827:16:40", "nodeType": "VariableDeclaration", "scope": 8576, "src": "1822:21:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 8570, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1822:4:40", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 8573, "mutability": "mutable", "name": "_isBonusToken", "nameLocation": "1850:13:40", "nodeType": "VariableDeclaration", "scope": 8576, "src": "1845:18:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 8572, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1845:4:40", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "1721:143:40"}, "returnParameters": {"id": 8575, "nodeType": "ParameterList", "parameters": [], "src": "1873:0:40"}, "scope": 8606, "src": "1700:174:40", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8577, "nodeType": "StructuredDocumentation", "src": "1880:179:40", "text": " @notice Add more budget to course\n @param _courseId Id of course\n @param _budget Budget that added to course\n emit {AddedBudget} events"}, "functionSelector": "caca4ad3", "id": 8584, "implemented": false, "kind": "function", "modifiers": [], "name": "addBudget", "nameLocation": "2073:9:40", "nodeType": "FunctionDefinition", "parameters": {"id": 8582, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8579, "mutability": "mutable", "name": "_courseId", "nameLocation": "2091:9:40", "nodeType": "VariableDeclaration", "scope": 8584, "src": "2083:17:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8578, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2083:7:40", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8581, "mutability": "mutable", "name": "_budget", "nameLocation": "2110:7:40", "nodeType": "VariableDeclaration", "scope": 8584, "src": "2102:15:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8580, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2102:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2082:36:40"}, "returnParameters": {"id": 8583, "nodeType": "ParameterList", "parameters": [], "src": "2127:0:40"}, "scope": 8606, "src": "2064:64:40", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8585, "nodeType": "StructuredDocumentation", "src": "2134:331:40", "text": " @notice Mark as learner completed course when the user submitted all assignments and accepted by creator\n @param _courseId Id of course\n @param _learner Address of learner\n @param _timeStarted Time when learner enrollred in course\n @param _nftIds List Id of nfts that learner will receive"}, "functionSelector": "3c41b482", "id": 8599, "implemented": false, "kind": "function", "modifiers": [], "name": "completeCourse", "nameLocation": "2479:14:40", "nodeType": "FunctionDefinition", "parameters": {"id": 8597, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8587, "mutability": "mutable", "name": "_courseId", "nameLocation": "2502:9:40", "nodeType": "VariableDeclaration", "scope": 8599, "src": "2494:17:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8586, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2494:7:40", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8589, "mutability": "mutable", "name": "_learner", "nameLocation": "2521:8:40", "nodeType": "VariableDeclaration", "scope": 8599, "src": "2513:16:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8588, "name": "address", "nodeType": "ElementaryTypeName", "src": "2513:7:40", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8591, "mutability": "mutable", "name": "_timeStarted", "nameLocation": "2539:12:40", "nodeType": "VariableDeclaration", "scope": 8599, "src": "2531:20:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8590, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2531:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8593, "mutability": "mutable", "name": "_timeCompleted", "nameLocation": "2561:14:40", "nodeType": "VariableDeclaration", "scope": 8599, "src": "2553:22:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8592, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2553:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8596, "mutability": "mutable", "name": "_nftIds", "nameLocation": "2594:7:40", "nodeType": "VariableDeclaration", "scope": 8599, "src": "2577:24:40", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]"}, "typeName": {"baseType": {"id": 8594, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2577:7:40", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 8595, "nodeType": "ArrayTypeName", "src": "2577:9:40", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}}, "visibility": "internal"}], "src": "2493:109:40"}, "returnParameters": {"id": 8598, "nodeType": "ParameterList", "parameters": [], "src": "2611:0:40"}, "scope": 8606, "src": "2470:142:40", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8600, "nodeType": "StructuredDocumentation", "src": "2618:124:40", "text": " @notice Creator can withdraw tokens bonus after time bonus ended\n @param _courseId Id of the course"}, "functionSelector": "669e88a1", "id": 8605, "implemented": false, "kind": "function", "modifiers": [], "name": "withdrawBudget", "nameLocation": "2756:14:40", "nodeType": "FunctionDefinition", "parameters": {"id": 8603, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8602, "mutability": "mutable", "name": "_courseId", "nameLocation": "2779:9:40", "nodeType": "VariableDeclaration", "scope": 8605, "src": "2771:17:40", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8601, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2771:7:40", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "2770:19:40"}, "returnParameters": {"id": 8604, "nodeType": "ParameterList", "parameters": [], "src": "2798:0:40"}, "scope": 8606, "src": "2747:52:40", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 8607, "src": "498:2303:40", "usedErrors": []}], "src": "32:2770:40"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/INFTReward.sol": {"AST": {"absolutePath": "contracts/interfaces/INFTReward.sol", "exportedSymbols": {"IERC721Upgradeable": [1762], "INFTReward": [8641]}, "id": 8642, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 8608, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:41"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol", "id": 8610, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 8642, "sourceUnit": 1629, "src": "56:108:41", "symbolAliases": [{"foreign": {"id": 8609, "name": "IERC721Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, "src": "65:18:41", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 8611, "name": "IERC721Upgradeable", "nameLocations": ["190:18:41"], "nodeType": "IdentifierPath", "referencedDeclaration": 1762, "src": "190:18:41"}, "id": 8612, "nodeType": "InheritanceSpecifier", "src": "190:18:41"}], "canonicalName": "INFTReward", "contractDependencies": [], "contractKind": "interface", "fullyImplemented": false, "id": 8641, "linearizedBaseContracts": [8641, 1762, 2695], "name": "INFTReward", "nameLocation": "176:10:41", "nodeType": "ContractDefinition", "nodes": [{"anonymous": false, "eventSelector": "e7cd4ce7f2a465edc730269a1305e8a48bad821e8fb7e152ec413829c01a53c4", "id": 8620, "name": "Minted", "nameLocation": "221:6:41", "nodeType": "EventDefinition", "parameters": {"id": 8619, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8614, "indexed": false, "mutability": "mutable", "name": "account", "nameLocation": "236:7:41", "nodeType": "VariableDeclaration", "scope": 8620, "src": "228:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8613, "name": "address", "nodeType": "ElementaryTypeName", "src": "228:7:41", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8616, "indexed": false, "mutability": "mutable", "name": "tokenId", "nameLocation": "253:7:41", "nodeType": "VariableDeclaration", "scope": 8620, "src": "245:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8615, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "245:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8618, "indexed": false, "mutability": "mutable", "name": "uri", "nameLocation": "269:3:41", "nodeType": "VariableDeclaration", "scope": 8620, "src": "262:10:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8617, "name": "string", "nodeType": "ElementaryTypeName", "src": "262:6:41", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "227:46:41"}, "src": "215:59:41"}, {"documentation": {"id": 8621, "nodeType": "StructuredDocumentation", "src": "280:125:41", "text": " @notice mint a NFT for _to address\n @param _to address of user\n \n emit { Minted } events"}, "functionSelector": "6a627842", "id": 8628, "implemented": false, "kind": "function", "modifiers": [], "name": "mint", "nameLocation": "419:4:41", "nodeType": "FunctionDefinition", "parameters": {"id": 8624, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8623, "mutability": "mutable", "name": "_to", "nameLocation": "432:3:41", "nodeType": "VariableDeclaration", "scope": 8628, "src": "424:11:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8622, "name": "address", "nodeType": "ElementaryTypeName", "src": "424:7:41", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "423:13:41"}, "returnParameters": {"id": 8627, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8626, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 8628, "src": "454:7:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8625, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "454:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "453:9:41"}, "scope": 8641, "src": "410:53:41", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8629, "nodeType": "StructuredDocumentation", "src": "469:210:41", "text": " @notice Replace for contructor\n @param _learnToEarn Address of LearnToEarn contract\n @param _name Name of NFTs\n @param _symbol Symbol of NFTs\n @param _uri ipfs of NFts"}, "functionSelector": "5f1e6f6d", "id": 8640, "implemented": false, "kind": "function", "modifiers": [], "name": "initialize", "nameLocation": "693:10:41", "nodeType": "FunctionDefinition", "parameters": {"id": 8638, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8631, "mutability": "mutable", "name": "_learnToEarn", "nameLocation": "712:12:41", "nodeType": "VariableDeclaration", "scope": 8640, "src": "704:20:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8630, "name": "address", "nodeType": "ElementaryTypeName", "src": "704:7:41", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8633, "mutability": "mutable", "name": "_name", "nameLocation": "740:5:41", "nodeType": "VariableDeclaration", "scope": 8640, "src": "726:19:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8632, "name": "string", "nodeType": "ElementaryTypeName", "src": "726:6:41", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 8635, "mutability": "mutable", "name": "_symbol", "nameLocation": "761:7:41", "nodeType": "VariableDeclaration", "scope": 8640, "src": "747:21:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8634, "name": "string", "nodeType": "ElementaryTypeName", "src": "747:6:41", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 8637, "mutability": "mutable", "name": "_uri", "nameLocation": "784:4:41", "nodeType": "VariableDeclaration", "scope": 8640, "src": "770:18:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8636, "name": "string", "nodeType": "ElementaryTypeName", "src": "770:6:41", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "703:86:41"}, "returnParameters": {"id": 8639, "nodeType": "ParameterList", "parameters": [], "src": "798:0:41"}, "scope": 8641, "src": "684:115:41", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 8642, "src": "166:635:41", "usedErrors": []}], "src": "32:769:41"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/IReBakedDAO.sol": {"AST": {"absolutePath": "contracts/interfaces/IReBakedDAO.sol", "exportedSymbols": {"IReBakedDAO": [8916]}, "id": 8917, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 8643, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:42"}, {"abstract": false, "baseContracts": [], "canonicalName": "IReBakedDAO", "contractDependencies": [], "contractKind": "interface", "fullyImplemented": false, "id": 8916, "linearizedBaseContracts": [8916], "name": "IReBakedDAO", "nameLocation": "67:11:42", "nodeType": "ContractDefinition", "nodes": [{"anonymous": false, "eventSelector": "2ac12ebf7dfd56173c73b2e43941f0faed1c3f7fb6f959191a4ab4bdd3d32e21", "id": 8649, "name": "UpdatedTreasury", "nameLocation": "91:15:42", "nodeType": "EventDefinition", "parameters": {"id": 8648, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8645, "indexed": false, "mutability": "mutable", "name": "oldTreasury", "nameLocation": "115:11:42", "nodeType": "VariableDeclaration", "scope": 8649, "src": "107:19:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8644, "name": "address", "nodeType": "ElementaryTypeName", "src": "107:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8647, "indexed": false, "mutability": "mutable", "name": "newTreasury", "nameLocation": "136:11:42", "nodeType": "VariableDeclaration", "scope": 8649, "src": "128:19:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8646, "name": "address", "nodeType": "ElementaryTypeName", "src": "128:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "106:42:42"}, "src": "85:64:42"}, {"anonymous": false, "eventSelector": "e13f31eeb084676e55593cb99c5bef76fadde467d9bc2653f56a4c9c3f3302c6", "id": 8659, "name": "CreatedProject", "nameLocation": "160:14:42", "nodeType": "EventDefinition", "parameters": {"id": 8658, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8651, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "191:9:42", "nodeType": "VariableDeclaration", "scope": 8659, "src": "175:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8650, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "175:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8653, "indexed": false, "mutability": "mutable", "name": "initiator", "nameLocation": "210:9:42", "nodeType": "VariableDeclaration", "scope": 8659, "src": "202:17:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8652, "name": "address", "nodeType": "ElementaryTypeName", "src": "202:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8655, "indexed": false, "mutability": "mutable", "name": "token", "nameLocation": "229:5:42", "nodeType": "VariableDeclaration", "scope": 8659, "src": "221:13:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8654, "name": "address", "nodeType": "ElementaryTypeName", "src": "221:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8657, "indexed": false, "mutability": "mutable", "name": "budget", "nameLocation": "244:6:42", "nodeType": "VariableDeclaration", "scope": 8659, "src": "236:14:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8656, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "236:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "174:77:42"}, "src": "154:98:42"}, {"anonymous": false, "eventSelector": "12962f2a364d2a11057d83ee13838ccc9ef2cfcabf5948f69117d12676f7fb97", "id": 8663, "name": "StartedProject", "nameLocation": "263:14:42", "nodeType": "EventDefinition", "parameters": {"id": 8662, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8661, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "294:9:42", "nodeType": "VariableDeclaration", "scope": 8663, "src": "278:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8660, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "278:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "277:27:42"}, "src": "257:48:42"}, {"anonymous": false, "eventSelector": "f8cff203664824068f2b9b06611412aa2f566078fb8d0ffdbbc9eb3b11042b18", "id": 8667, "name": "ApprovedProject", "nameLocation": "316:15:42", "nodeType": "EventDefinition", "parameters": {"id": 8666, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8665, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "348:9:42", "nodeType": "VariableDeclaration", "scope": 8667, "src": "332:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8664, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "332:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "331:27:42"}, "src": "310:49:42"}, {"anonymous": false, "eventSelector": "57854ae7fa7dd108a735bb91879e7ef3ba109e004981ca9d6df5f72510ddb731", "id": 8673, "name": "FinishedProject", "nameLocation": "370:15:42", "nodeType": "EventDefinition", "parameters": {"id": 8672, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8669, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "402:9:42", "nodeType": "VariableDeclaration", "scope": 8673, "src": "386:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8668, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "386:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8671, "indexed": false, "mutability": "mutable", "name": "budgetLeft", "nameLocation": "421:10:42", "nodeType": "VariableDeclaration", "scope": 8673, "src": "413:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8670, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "413:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "385:47:42"}, "src": "364:69:42"}, {"anonymous": false, "eventSelector": "078c5efce40e0c0891ebda17cfbf5d7cdd9d5eb4afb16375d39b8243451871e2", "id": 8685, "name": "CreatedPackage", "nameLocation": "444:14:42", "nodeType": "EventDefinition", "parameters": {"id": 8684, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8675, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "475:9:42", "nodeType": "VariableDeclaration", "scope": 8685, "src": "459:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8674, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "459:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8677, "indexed": true, "mutability": "mutable", "name": "packageId", "nameLocation": "502:9:42", "nodeType": "VariableDeclaration", "scope": 8685, "src": "486:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8676, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "486:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8679, "indexed": false, "mutability": "mutable", "name": "budget", "nameLocation": "521:6:42", "nodeType": "VariableDeclaration", "scope": 8685, "src": "513:14:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8678, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "513:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8681, "indexed": false, "mutability": "mutable", "name": "bonus", "nameLocation": "537:5:42", "nodeType": "VariableDeclaration", "scope": 8685, "src": "529:13:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8680, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "529:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8683, "indexed": false, "mutability": "mutable", "name": "observerBudget", "nameLocation": "552:14:42", "nodeType": "VariableDeclaration", "scope": 8685, "src": "544:22:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8682, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "544:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "458:109:42"}, "src": "438:130:42"}, {"anonymous": false, "eventSelector": "b1cc0cc3834b00e41fce4d1b26e0683b2457f753ec2683b88651d001476a6e38", "id": 8694, "name": "AddedObservers", "nameLocation": "579:14:42", "nodeType": "EventDefinition", "parameters": {"id": 8693, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8687, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "610:9:42", "nodeType": "VariableDeclaration", "scope": 8694, "src": "594:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8686, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "594:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8689, "indexed": true, "mutability": "mutable", "name": "packageId", "nameLocation": "637:9:42", "nodeType": "VariableDeclaration", "scope": 8694, "src": "621:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8688, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "621:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8692, "indexed": false, "mutability": "mutable", "name": "observers", "nameLocation": "658:9:42", "nodeType": "VariableDeclaration", "scope": 8694, "src": "648:19:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8690, "name": "address", "nodeType": "ElementaryTypeName", "src": "648:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8691, "nodeType": "ArrayTypeName", "src": "648:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "593:75:42"}, "src": "573:96:42"}, {"anonymous": false, "eventSelector": "85572f85b2bc590a66fd61ccb26b098a3e1e5be48c230a5cc1f4c1d23603d1e1", "id": 8703, "name": "RemovedObservers", "nameLocation": "680:16:42", "nodeType": "EventDefinition", "parameters": {"id": 8702, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8696, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "713:9:42", "nodeType": "VariableDeclaration", "scope": 8703, "src": "697:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8695, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "697:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8698, "indexed": true, "mutability": "mutable", "name": "packageId", "nameLocation": "740:9:42", "nodeType": "VariableDeclaration", "scope": 8703, "src": "724:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8697, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "724:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8701, "indexed": false, "mutability": "mutable", "name": "observers", "nameLocation": "761:9:42", "nodeType": "VariableDeclaration", "scope": 8703, "src": "751:19:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8699, "name": "address", "nodeType": "ElementaryTypeName", "src": "751:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8700, "nodeType": "ArrayTypeName", "src": "751:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "696:75:42"}, "src": "674:98:42"}, {"anonymous": false, "eventSelector": "8aa39f8fa6c78a00b31a805b7955eb3e38d4cb7bd4d87c84655269141bd8477e", "id": 8713, "name": "AddedCollaborator", "nameLocation": "783:17:42", "nodeType": "EventDefinition", "parameters": {"id": 8712, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8705, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "817:9:42", "nodeType": "VariableDeclaration", "scope": 8713, "src": "801:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8704, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "801:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8707, "indexed": true, "mutability": "mutable", "name": "packageId", "nameLocation": "844:9:42", "nodeType": "VariableDeclaration", "scope": 8713, "src": "828:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8706, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "828:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8709, "indexed": false, "mutability": "mutable", "name": "collaborator", "nameLocation": "863:12:42", "nodeType": "VariableDeclaration", "scope": 8713, "src": "855:20:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8708, "name": "address", "nodeType": "ElementaryTypeName", "src": "855:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8711, "indexed": false, "mutability": "mutable", "name": "mgp", "nameLocation": "885:3:42", "nodeType": "VariableDeclaration", "scope": 8713, "src": "877:11:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8710, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "877:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "800:89:42"}, "src": "777:113:42"}, {"anonymous": false, "eventSelector": "89d75bad6a27d516d326126cd95a5626e99ce9548579494bb6d51f59b9c88783", "id": 8721, "name": "ApprovedCollaborator", "nameLocation": "901:20:42", "nodeType": "EventDefinition", "parameters": {"id": 8720, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8715, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "938:9:42", "nodeType": "VariableDeclaration", "scope": 8721, "src": "922:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8714, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "922:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8717, "indexed": true, "mutability": "mutable", "name": "packageId", "nameLocation": "965:9:42", "nodeType": "VariableDeclaration", "scope": 8721, "src": "949:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8716, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "949:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8719, "indexed": false, "mutability": "mutable", "name": "collaborator", "nameLocation": "984:12:42", "nodeType": "VariableDeclaration", "scope": 8721, "src": "976:20:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8718, "name": "address", "nodeType": "ElementaryTypeName", "src": "976:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "921:76:42"}, "src": "895:103:42"}, {"anonymous": false, "eventSelector": "1810672a3dad8f995260ba0777de0e36f462980ce02a3951804f83aac9c2d455", "id": 8729, "name": "RemovedCollaborator", "nameLocation": "1009:19:42", "nodeType": "EventDefinition", "parameters": {"id": 8728, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8723, "indexed": true, "mutability": "mutable", "name": "projectId_", "nameLocation": "1045:10:42", "nodeType": "VariableDeclaration", "scope": 8729, "src": "1029:26:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8722, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1029:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8725, "indexed": true, "mutability": "mutable", "name": "packageId_", "nameLocation": "1073:10:42", "nodeType": "VariableDeclaration", "scope": 8729, "src": "1057:26:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8724, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1057:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8727, "indexed": false, "mutability": "mutable", "name": "collaborator_", "nameLocation": "1093:13:42", "nodeType": "VariableDeclaration", "scope": 8729, "src": "1085:21:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8726, "name": "address", "nodeType": "ElementaryTypeName", "src": "1085:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1028:79:42"}, "src": "1003:105:42"}, {"anonymous": false, "eventSelector": "ca0673658d6abd07a7992b1c692276e95e5693b83c44ebcbc0f5661add8f274f", "id": 8737, "name": "FinishedPackage", "nameLocation": "1119:15:42", "nodeType": "EventDefinition", "parameters": {"id": 8736, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8731, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "1151:9:42", "nodeType": "VariableDeclaration", "scope": 8737, "src": "1135:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8730, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1135:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8733, "indexed": true, "mutability": "mutable", "name": "packageId", "nameLocation": "1178:9:42", "nodeType": "VariableDeclaration", "scope": 8737, "src": "1162:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8732, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1162:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8735, "indexed": true, "mutability": "mutable", "name": "budgetLeft", "nameLocation": "1205:10:42", "nodeType": "VariableDeclaration", "scope": 8737, "src": "1189:26:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8734, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1189:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1134:82:42"}, "src": "1113:104:42"}, {"anonymous": false, "eventSelector": "56829e4c362b83a2633cd58ab80f95a4c661582416ca0dd74cf6844198ef9390", "id": 8745, "name": "CanceledPackage", "nameLocation": "1228:15:42", "nodeType": "EventDefinition", "parameters": {"id": 8744, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8739, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "1260:9:42", "nodeType": "VariableDeclaration", "scope": 8745, "src": "1244:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8738, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1244:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8741, "indexed": true, "mutability": "mutable", "name": "packageId", "nameLocation": "1287:9:42", "nodeType": "VariableDeclaration", "scope": 8745, "src": "1271:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8740, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1271:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8743, "indexed": true, "mutability": "mutable", "name": "revertedBudget", "nameLocation": "1314:14:42", "nodeType": "VariableDeclaration", "scope": 8745, "src": "1298:30:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8742, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1298:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1243:86:42"}, "src": "1222:108:42"}, {"anonymous": false, "eventSelector": "f791dbe60269baac78be1afe586f70aa816e7a19b3ff88e228ca638e41142dae", "id": 8755, "name": "PaidObserverFee", "nameLocation": "1341:15:42", "nodeType": "EventDefinition", "parameters": {"id": 8754, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8747, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "1373:9:42", "nodeType": "VariableDeclaration", "scope": 8755, "src": "1357:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8746, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1357:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8749, "indexed": true, "mutability": "mutable", "name": "packageId", "nameLocation": "1400:9:42", "nodeType": "VariableDeclaration", "scope": 8755, "src": "1384:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8748, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1384:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8751, "indexed": false, "mutability": "mutable", "name": "collaborator", "nameLocation": "1419:12:42", "nodeType": "VariableDeclaration", "scope": 8755, "src": "1411:20:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8750, "name": "address", "nodeType": "ElementaryTypeName", "src": "1411:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8753, "indexed": false, "mutability": "mutable", "name": "amount", "nameLocation": "1441:6:42", "nodeType": "VariableDeclaration", "scope": 8755, "src": "1433:14:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8752, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1433:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1356:92:42"}, "src": "1335:114:42"}, {"anonymous": false, "eventSelector": "53aa87b28abc70f0fb4d2402a35d5e4d91386b5b045ad43d598a715982e32d20", "id": 8767, "name": "PaidCollaboratorRewards", "nameLocation": "1460:23:42", "nodeType": "EventDefinition", "parameters": {"id": 8766, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8757, "indexed": true, "mutability": "mutable", "name": "projectId", "nameLocation": "1500:9:42", "nodeType": "VariableDeclaration", "scope": 8767, "src": "1484:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8756, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1484:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8759, "indexed": true, "mutability": "mutable", "name": "packageId", "nameLocation": "1527:9:42", "nodeType": "VariableDeclaration", "scope": 8767, "src": "1511:25:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8758, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1511:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8761, "indexed": false, "mutability": "mutable", "name": "collaborator", "nameLocation": "1546:12:42", "nodeType": "VariableDeclaration", "scope": 8767, "src": "1538:20:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8760, "name": "address", "nodeType": "ElementaryTypeName", "src": "1538:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8763, "indexed": false, "mutability": "mutable", "name": "mgp", "nameLocation": "1568:3:42", "nodeType": "VariableDeclaration", "scope": 8767, "src": "1560:11:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8762, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1560:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8765, "indexed": false, "mutability": "mutable", "name": "bonus", "nameLocation": "1581:5:42", "nodeType": "VariableDeclaration", "scope": 8767, "src": "1573:13:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8764, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1573:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1483:104:42"}, "src": "1454:134:42"}, {"documentation": {"id": 8768, "nodeType": "StructuredDocumentation", "src": "1594:121:42", "text": " @notice Update treasury address\n @param treasury_ Treasury address\n Emit {UpdatedTreasury}"}, "functionSelector": "7f51bb1f", "id": 8773, "implemented": false, "kind": "function", "modifiers": [], "name": "updateTreasury", "nameLocation": "1729:14:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8771, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8770, "mutability": "mutable", "name": "treasury_", "nameLocation": "1752:9:42", "nodeType": "VariableDeclaration", "scope": 8773, "src": "1744:17:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8769, "name": "address", "nodeType": "ElementaryTypeName", "src": "1744:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1743:19:42"}, "returnParameters": {"id": 8772, "nodeType": "ParameterList", "parameters": [], "src": "1771:0:42"}, "scope": 8916, "src": "1720:52:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8774, "nodeType": "StructuredDocumentation", "src": "1778:443:42", "text": " @dev Creates project proposal\n @param token_ project token address, zero addres if project has not token yet\n (IOUToken will be deployed on project approval)\n @param budget_ total budget (has to be approved on token contract if project has its own token)\n @dev (`token_` == ZERO_ADDRESS) ? project has no token yet : `IOUToken` will be deployed on project approval\n Emit {CreatedProject}"}, "functionSelector": "e82d6572", "id": 8781, "implemented": false, "kind": "function", "modifiers": [], "name": "createProject", "nameLocation": "2235:13:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8779, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8776, "mutability": "mutable", "name": "token_", "nameLocation": "2257:6:42", "nodeType": "VariableDeclaration", "scope": 8781, "src": "2249:14:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8775, "name": "address", "nodeType": "ElementaryTypeName", "src": "2249:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8778, "mutability": "mutable", "name": "budget_", "nameLocation": "2273:7:42", "nodeType": "VariableDeclaration", "scope": 8781, "src": "2265:15:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8777, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2265:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2248:33:42"}, "returnParameters": {"id": 8780, "nodeType": "ParameterList", "parameters": [], "src": "2290:0:42"}, "scope": 8916, "src": "2226:65:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8782, "nodeType": "StructuredDocumentation", "src": "2297:116:42", "text": " @notice Finishes project\n @param _projectId Id of the project\n Emit {FinishedProject}"}, "functionSelector": "85ceab29", "id": 8787, "implemented": false, "kind": "function", "modifiers": [], "name": "finishProject", "nameLocation": "2427:13:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8785, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8784, "mutability": "mutable", "name": "_projectId", "nameLocation": "2449:10:42", "nodeType": "VariableDeclaration", "scope": 8787, "src": "2441:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8783, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2441:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "2440:20:42"}, "returnParameters": {"id": 8786, "nodeType": "ParameterList", "parameters": [], "src": "2469:0:42"}, "scope": 8916, "src": "2418:52:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8788, "nodeType": "StructuredDocumentation", "src": "2476:337:42", "text": " @notice Creates package in project\n @param _projectId Id of the project\n @param _budget MGP budget\n @param _bonus Bonus budget\n @param _observerBudget Observer budget\n @param _collaboratorsLimit maximum collaborators\n @param _observers List of observers\n Emit {CreatedPackage}"}, "functionSelector": "b2b57114", "id": 8804, "implemented": false, "kind": "function", "modifiers": [], "name": "createPackage", "nameLocation": "2827:13:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8802, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8790, "mutability": "mutable", "name": "_projectId", "nameLocation": "2858:10:42", "nodeType": "VariableDeclaration", "scope": 8804, "src": "2850:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8789, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2850:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8792, "mutability": "mutable", "name": "_budget", "nameLocation": "2886:7:42", "nodeType": "VariableDeclaration", "scope": 8804, "src": "2878:15:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8791, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2878:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8794, "mutability": "mutable", "name": "_bonus", "nameLocation": "2911:6:42", "nodeType": "VariableDeclaration", "scope": 8804, "src": "2903:14:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8793, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2903:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8796, "mutability": "mutable", "name": "_observerBudget", "nameLocation": "2935:15:42", "nodeType": "VariableDeclaration", "scope": 8804, "src": "2927:23:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8795, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2927:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8798, "mutability": "mutable", "name": "_collaboratorsLimit", "nameLocation": "2968:19:42", "nodeType": "VariableDeclaration", "scope": 8804, "src": "2960:27:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8797, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2960:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8801, "mutability": "mutable", "name": "_observers", "nameLocation": "3014:10:42", "nodeType": "VariableDeclaration", "scope": 8804, "src": "2997:27:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8799, "name": "address", "nodeType": "ElementaryTypeName", "src": "2997:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8800, "nodeType": "ArrayTypeName", "src": "2997:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "2840:190:42"}, "returnParameters": {"id": 8803, "nodeType": "ParameterList", "parameters": [], "src": "3039:0:42"}, "scope": 8916, "src": "2818:222:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8805, "nodeType": "StructuredDocumentation", "src": "3046:333:42", "text": " @notice Finishes package in project\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborators List of collaborators\n @param _observers List of observers\n @param _scores List of bonus scores for collaborators\n \n Emit {FinishedPackage}"}, "functionSelector": "2926aa80", "id": 8821, "implemented": false, "kind": "function", "modifiers": [], "name": "finishPackage", "nameLocation": "3393:13:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8819, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8807, "mutability": "mutable", "name": "_projectId", "nameLocation": "3424:10:42", "nodeType": "VariableDeclaration", "scope": 8821, "src": "3416:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8806, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3416:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8809, "mutability": "mutable", "name": "_packageId", "nameLocation": "3452:10:42", "nodeType": "VariableDeclaration", "scope": 8821, "src": "3444:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8808, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3444:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8812, "mutability": "mutable", "name": "_collaborators", "nameLocation": "3489:14:42", "nodeType": "VariableDeclaration", "scope": 8821, "src": "3472:31:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8810, "name": "address", "nodeType": "ElementaryTypeName", "src": "3472:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8811, "nodeType": "ArrayTypeName", "src": "3472:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 8815, "mutability": "mutable", "name": "_observers", "nameLocation": "3530:10:42", "nodeType": "VariableDeclaration", "scope": 8821, "src": "3513:27:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8813, "name": "address", "nodeType": "ElementaryTypeName", "src": "3513:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8814, "nodeType": "ArrayTypeName", "src": "3513:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 8818, "mutability": "mutable", "name": "_scores", "nameLocation": "3567:7:42", "nodeType": "VariableDeclaration", "scope": 8821, "src": "3550:24:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]"}, "typeName": {"baseType": {"id": 8816, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3550:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 8817, "nodeType": "ArrayTypeName", "src": "3550:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}}, "visibility": "internal"}], "src": "3406:174:42"}, "returnParameters": {"id": 8820, "nodeType": "ParameterList", "parameters": [], "src": "3589:0:42"}, "scope": 8916, "src": "3384:206:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8822, "nodeType": "StructuredDocumentation", "src": "3596:303:42", "text": " @notice Cancel package in project and release project budget\n @param _projectId Id of the project\n @param _packageId Id of the project\n @param _collaborators address of the collaborators\n @param _observers address of the observers\n Emit {CanceledPackage}"}, "functionSelector": "085f8a9c", "id": 8837, "implemented": false, "kind": "function", "modifiers": [], "name": "cancelPackage", "nameLocation": "3913:13:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8835, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8824, "mutability": "mutable", "name": "_projectId", "nameLocation": "3944:10:42", "nodeType": "VariableDeclaration", "scope": 8837, "src": "3936:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8823, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3936:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8826, "mutability": "mutable", "name": "_packageId", "nameLocation": "3972:10:42", "nodeType": "VariableDeclaration", "scope": 8837, "src": "3964:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8825, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3964:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8829, "mutability": "mutable", "name": "_collaborators", "nameLocation": "4009:14:42", "nodeType": "VariableDeclaration", "scope": 8837, "src": "3992:31:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8827, "name": "address", "nodeType": "ElementaryTypeName", "src": "3992:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8828, "nodeType": "ArrayTypeName", "src": "3992:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 8832, "mutability": "mutable", "name": "_observers", "nameLocation": "4050:10:42", "nodeType": "VariableDeclaration", "scope": 8837, "src": "4033:27:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8830, "name": "address", "nodeType": "ElementaryTypeName", "src": "4033:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8831, "nodeType": "ArrayTypeName", "src": "4033:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 8834, "mutability": "mutable", "name": "_workStarted", "nameLocation": "4075:12:42", "nodeType": "VariableDeclaration", "scope": 8837, "src": "4070:17:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 8833, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4070:4:42", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "3926:167:42"}, "returnParameters": {"id": 8836, "nodeType": "ParameterList", "parameters": [], "src": "4102:0:42"}, "scope": 8916, "src": "3904:199:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8838, "nodeType": "StructuredDocumentation", "src": "4109:256:42", "text": " @notice Adds collaborator to package\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborator collaborators' addresses\n @param _mgp MGP amount\n Emit {AddedCollaborator}"}, "functionSelector": "ec104ff1", "id": 8849, "implemented": false, "kind": "function", "modifiers": [], "name": "addCollaborator", "nameLocation": "4379:15:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8847, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8840, "mutability": "mutable", "name": "_projectId", "nameLocation": "4403:10:42", "nodeType": "VariableDeclaration", "scope": 8849, "src": "4395:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8839, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4395:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8842, "mutability": "mutable", "name": "_packageId", "nameLocation": "4423:10:42", "nodeType": "VariableDeclaration", "scope": 8849, "src": "4415:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8841, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4415:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8844, "mutability": "mutable", "name": "_collaborator", "nameLocation": "4443:13:42", "nodeType": "VariableDeclaration", "scope": 8849, "src": "4435:21:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8843, "name": "address", "nodeType": "ElementaryTypeName", "src": "4435:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8846, "mutability": "mutable", "name": "_mgp", "nameLocation": "4466:4:42", "nodeType": "VariableDeclaration", "scope": 8849, "src": "4458:12:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8845, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4458:7:42", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4394:77:42"}, "returnParameters": {"id": 8848, "nodeType": "ParameterList", "parameters": [], "src": "4480:0:42"}, "scope": 8916, "src": "4370:111:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8850, "nodeType": "StructuredDocumentation", "src": "4487:278:42", "text": " @notice Approves collaborator's MGP or deletes collaborator (should be called by admin)\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborator collaborator's address\n Emit {ApprovedCollaborator}"}, "functionSelector": "dcce114e", "id": 8859, "implemented": false, "kind": "function", "modifiers": [], "name": "approveCollaborator", "nameLocation": "4779:19:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8857, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8852, "mutability": "mutable", "name": "_projectId", "nameLocation": "4807:10:42", "nodeType": "VariableDeclaration", "scope": 8859, "src": "4799:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8851, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4799:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8854, "mutability": "mutable", "name": "_packageId", "nameLocation": "4827:10:42", "nodeType": "VariableDeclaration", "scope": 8859, "src": "4819:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8853, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4819:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8856, "mutability": "mutable", "name": "_collaborator", "nameLocation": "4847:13:42", "nodeType": "VariableDeclaration", "scope": 8859, "src": "4839:21:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8855, "name": "address", "nodeType": "ElementaryTypeName", "src": "4839:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "4798:63:42"}, "returnParameters": {"id": 8858, "nodeType": "ParameterList", "parameters": [], "src": "4870:0:42"}, "scope": 8916, "src": "4770:101:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8860, "nodeType": "StructuredDocumentation", "src": "4877:341:42", "text": " @notice Approves collaborator's MGP or deletes collaborator (should be called by admin)\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _collaborator collaborator's address\n @param _shouldPayMgp Should pay MGP for the collaborator\n Emit {RemovedCollaborator}"}, "functionSelector": "0eae9d88", "id": 8871, "implemented": false, "kind": "function", "modifiers": [], "name": "removeCollaborator", "nameLocation": "5232:18:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8869, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8862, "mutability": "mutable", "name": "_projectId", "nameLocation": "5259:10:42", "nodeType": "VariableDeclaration", "scope": 8871, "src": "5251:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8861, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5251:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8864, "mutability": "mutable", "name": "_packageId", "nameLocation": "5279:10:42", "nodeType": "VariableDeclaration", "scope": 8871, "src": "5271:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8863, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5271:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8866, "mutability": "mutable", "name": "_collaborator", "nameLocation": "5299:13:42", "nodeType": "VariableDeclaration", "scope": 8871, "src": "5291:21:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8865, "name": "address", "nodeType": "ElementaryTypeName", "src": "5291:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8868, "mutability": "mutable", "name": "_shouldPayMgp", "nameLocation": "5319:13:42", "nodeType": "VariableDeclaration", "scope": 8871, "src": "5314:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 8867, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5314:4:42", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "5250:83:42"}, "returnParameters": {"id": 8870, "nodeType": "ParameterList", "parameters": [], "src": "5342:0:42"}, "scope": 8916, "src": "5223:120:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8872, "nodeType": "StructuredDocumentation", "src": "5349:171:42", "text": " @notice Self remove collaborator\n @param _projectId Id of the project\n @param _packageId Id of the package\n Emit {RemovedCollaborator}"}, "functionSelector": "03a1fc22", "id": 8879, "implemented": false, "kind": "function", "modifiers": [], "name": "selfRemove", "nameLocation": "5534:10:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8877, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8874, "mutability": "mutable", "name": "_projectId", "nameLocation": "5553:10:42", "nodeType": "VariableDeclaration", "scope": 8879, "src": "5545:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8873, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5545:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8876, "mutability": "mutable", "name": "_packageId", "nameLocation": "5573:10:42", "nodeType": "VariableDeclaration", "scope": 8879, "src": "5565:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8875, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5565:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "5544:40:42"}, "returnParameters": {"id": 8878, "nodeType": "ParameterList", "parameters": [], "src": "5593:0:42"}, "scope": 8916, "src": "5525:69:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8880, "nodeType": "StructuredDocumentation", "src": "5600:213:42", "text": " @notice Adds observers to package\n @param _projectId Id of the project\n @param _packageId Id of the package\n @param _observers observers' addresses\n Emit {AddedObservers}"}, "functionSelector": "be06555e", "id": 8890, "implemented": false, "kind": "function", "modifiers": [], "name": "addObservers", "nameLocation": "5827:12:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8888, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8882, "mutability": "mutable", "name": "_projectId", "nameLocation": "5848:10:42", "nodeType": "VariableDeclaration", "scope": 8890, "src": "5840:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8881, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5840:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8884, "mutability": "mutable", "name": "_packageId", "nameLocation": "5868:10:42", "nodeType": "VariableDeclaration", "scope": 8890, "src": "5860:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8883, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5860:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8887, "mutability": "mutable", "name": "_observers", "nameLocation": "5897:10:42", "nodeType": "VariableDeclaration", "scope": 8890, "src": "5880:27:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8885, "name": "address", "nodeType": "ElementaryTypeName", "src": "5880:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8886, "nodeType": "ArrayTypeName", "src": "5880:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "5839:69:42"}, "returnParameters": {"id": 8889, "nodeType": "ParameterList", "parameters": [], "src": "5917:0:42"}, "scope": 8916, "src": "5818:100:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8891, "nodeType": "StructuredDocumentation", "src": "5924:213:42", "text": " @notice Removes observers from package\n @param _projectId Id of the project\n @param _packageId package id\n @param _observers observers' addresses\n Emit {RemovedObservers}"}, "functionSelector": "3a7efc84", "id": 8901, "implemented": false, "kind": "function", "modifiers": [], "name": "removeObservers", "nameLocation": "6151:15:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8899, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8893, "mutability": "mutable", "name": "_projectId", "nameLocation": "6175:10:42", "nodeType": "VariableDeclaration", "scope": 8901, "src": "6167:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8892, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6167:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8895, "mutability": "mutable", "name": "_packageId", "nameLocation": "6195:10:42", "nodeType": "VariableDeclaration", "scope": 8901, "src": "6187:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8894, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6187:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8898, "mutability": "mutable", "name": "_observers", "nameLocation": "6224:10:42", "nodeType": "VariableDeclaration", "scope": 8901, "src": "6207:27:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8896, "name": "address", "nodeType": "ElementaryTypeName", "src": "6207:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8897, "nodeType": "ArrayTypeName", "src": "6207:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "6166:69:42"}, "returnParameters": {"id": 8900, "nodeType": "ParameterList", "parameters": [], "src": "6244:0:42"}, "scope": 8916, "src": "6142:103:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8902, "nodeType": "StructuredDocumentation", "src": "6251:313:42", "text": " @notice Adds, removes observers from package\n @param _projectId Id of the project\n @param _packageId package id\n @param _observersIn observers' addresses to be added\n @param _observersOut observers' addresses to be removed\n Emit {AddedObservers} {RemovedObservers}"}, "functionSelector": "71af530b", "id": 8915, "implemented": false, "kind": "function", "modifiers": [], "name": "updateObservers", "nameLocation": "6578:15:42", "nodeType": "FunctionDefinition", "parameters": {"id": 8913, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8904, "mutability": "mutable", "name": "_projectId", "nameLocation": "6611:10:42", "nodeType": "VariableDeclaration", "scope": 8915, "src": "6603:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8903, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6603:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8906, "mutability": "mutable", "name": "_packageId", "nameLocation": "6639:10:42", "nodeType": "VariableDeclaration", "scope": 8915, "src": "6631:18:42", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 8905, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "6631:7:42", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}, {"constant": false, "id": 8909, "mutability": "mutable", "name": "_observersIn", "nameLocation": "6676:12:42", "nodeType": "VariableDeclaration", "scope": 8915, "src": "6659:29:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8907, "name": "address", "nodeType": "ElementaryTypeName", "src": "6659:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8908, "nodeType": "ArrayTypeName", "src": "6659:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 8912, "mutability": "mutable", "name": "_observersOut", "nameLocation": "6715:13:42", "nodeType": "VariableDeclaration", "scope": 8915, "src": "6698:30:42", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 8910, "name": "address", "nodeType": "ElementaryTypeName", "src": "6698:7:42", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 8911, "nodeType": "ArrayTypeName", "src": "6698:9:42", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}], "src": "6593:141:42"}, "returnParameters": {"id": 8914, "nodeType": "ParameterList", "parameters": [], "src": "6743:0:42"}, "scope": 8916, "src": "6569:175:42", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 8917, "src": "57:6690:42", "usedErrors": []}], "src": "32:6716:42"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/ITokenFactory.sol": {"AST": {"absolutePath": "contracts/interfaces/ITokenFactory.sol", "exportedSymbols": {"ITokenFactory": [8959]}, "id": 8960, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 8918, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:43"}, {"abstract": false, "baseContracts": [], "canonicalName": "ITokenFactory", "contractDependencies": [], "contractKind": "interface", "fullyImplemented": false, "id": 8959, "linearizedBaseContracts": [8959], "name": "ITokenFactory", "nameLocation": "67:13:43", "nodeType": "ContractDefinition", "nodes": [{"anonymous": false, "eventSelector": "9d4a605126592dbb92f903ac98e8c937282fbe6325f14bf4d5eacf3544edc35c", "id": 8924, "name": "DeployedToken", "nameLocation": "93:13:43", "nodeType": "EventDefinition", "parameters": {"id": 8923, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8920, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "123:5:43", "nodeType": "VariableDeclaration", "scope": 8924, "src": "107:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8919, "name": "address", "nodeType": "ElementaryTypeName", "src": "107:7:43", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8922, "indexed": true, "mutability": "mutable", "name": "totalSupply", "nameLocation": "146:11:43", "nodeType": "VariableDeclaration", "scope": 8924, "src": "130:27:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8921, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "130:7:43", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "106:52:43"}, "src": "87:72:43"}, {"anonymous": false, "eventSelector": "448700cd409e255b87a8a438a7cd86b88452daafacabc31ab74b8da7b039a478", "id": 8930, "name": "SetLearnToEarn", "nameLocation": "170:14:43", "nodeType": "EventDefinition", "parameters": {"id": 8929, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8926, "indexed": true, "mutability": "mutable", "name": "oldLearnToEarn", "nameLocation": "201:14:43", "nodeType": "VariableDeclaration", "scope": 8930, "src": "185:30:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8925, "name": "address", "nodeType": "ElementaryTypeName", "src": "185:7:43", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 8928, "indexed": true, "mutability": "mutable", "name": "newLearnToEarn", "nameLocation": "233:14:43", "nodeType": "VariableDeclaration", "scope": 8930, "src": "217:30:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8927, "name": "address", "nodeType": "ElementaryTypeName", "src": "217:7:43", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "184:64:43"}, "src": "164:85:43"}, {"anonymous": false, "eventSelector": "f784f9219f2a6abce53e3cbad9cdb6703c11c16fe0fb6e2525b74f9a04fed14c", "id": 8934, "name": "DeployedNFT", "nameLocation": "260:11:43", "nodeType": "EventDefinition", "parameters": {"id": 8933, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8932, "indexed": true, "mutability": "mutable", "name": "nft", "nameLocation": "288:3:43", "nodeType": "VariableDeclaration", "scope": 8934, "src": "272:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8931, "name": "address", "nodeType": "ElementaryTypeName", "src": "272:7:43", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "271:21:43"}, "src": "254:39:43"}, {"documentation": {"id": 8935, "nodeType": "StructuredDocumentation", "src": "299:280:43", "text": " @notice Deploys IOUT with totalSupply equal to project budget\n @param _totalSupply Token total supply\n @param _name Name of token\n @param _symbol Symbol of token\n @return token_ IOU token address\n emit {DeployedToken} events"}, "functionSelector": "da68ed12", "id": 8946, "implemented": false, "kind": "function", "modifiers": [], "name": "deployToken", "nameLocation": "593:11:43", "nodeType": "FunctionDefinition", "parameters": {"id": 8942, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8937, "mutability": "mutable", "name": "_totalSupply", "nameLocation": "613:12:43", "nodeType": "VariableDeclaration", "scope": 8946, "src": "605:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8936, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "605:7:43", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 8939, "mutability": "mutable", "name": "_name", "nameLocation": "641:5:43", "nodeType": "VariableDeclaration", "scope": 8946, "src": "627:19:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8938, "name": "string", "nodeType": "ElementaryTypeName", "src": "627:6:43", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 8941, "mutability": "mutable", "name": "_symbol", "nameLocation": "662:7:43", "nodeType": "VariableDeclaration", "scope": 8946, "src": "648:21:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8940, "name": "string", "nodeType": "ElementaryTypeName", "src": "648:6:43", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "604:66:43"}, "returnParameters": {"id": 8945, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8944, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 8946, "src": "689:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8943, "name": "address", "nodeType": "ElementaryTypeName", "src": "689:7:43", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "688:9:43"}, "scope": 8959, "src": "584:114:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}, {"documentation": {"id": 8947, "nodeType": "StructuredDocumentation", "src": "704:225:43", "text": " @notice Deploy new contract to mint NFT\n @param _name Name of NFT\n @param _symbol Symbol of NFT\n @param _uri Ipfs of NFT\n @return nft_ address\n emit {DeployedNFT} events"}, "functionSelector": "7309fe22", "id": 8958, "implemented": false, "kind": "function", "modifiers": [], "name": "deployNFT", "nameLocation": "943:9:43", "nodeType": "FunctionDefinition", "parameters": {"id": 8954, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8949, "mutability": "mutable", "name": "_name", "nameLocation": "967:5:43", "nodeType": "VariableDeclaration", "scope": 8958, "src": "953:19:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8948, "name": "string", "nodeType": "ElementaryTypeName", "src": "953:6:43", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 8951, "mutability": "mutable", "name": "_symbol", "nameLocation": "988:7:43", "nodeType": "VariableDeclaration", "scope": 8958, "src": "974:21:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8950, "name": "string", "nodeType": "ElementaryTypeName", "src": "974:6:43", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 8953, "mutability": "mutable", "name": "_uri", "nameLocation": "1011:4:43", "nodeType": "VariableDeclaration", "scope": 8958, "src": "997:18:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 8952, "name": "string", "nodeType": "ElementaryTypeName", "src": "997:6:43", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "952:64:43"}, "returnParameters": {"id": 8957, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8956, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 8958, "src": "1035:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 8955, "name": "address", "nodeType": "ElementaryTypeName", "src": "1035:7:43", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1034:9:43"}, "scope": 8959, "src": "934:110:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "external"}], "scope": 8960, "src": "57:989:43", "usedErrors": []}], "src": "32:1015:43"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/CollaboratorLibrary.sol": {"AST": {"absolutePath": "contracts/libraries/CollaboratorLibrary.sol", "exportedSymbols": {"Collaborator": [9954], "CollaboratorLibrary": [9112]}, "id": 9113, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 8961, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:44"}, {"absolutePath": "contracts/libraries/Structs.sol", "file": "./Structs.sol", "id": 8963, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 9113, "sourceUnit": 9962, "src": "56:45:44", "symbolAliases": [{"foreign": {"id": 8962, "name": "Collaborator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9954, "src": "65:12:44", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [], "canonicalName": "CollaboratorLibrary", "contractDependencies": [], "contractKind": "library", "fullyImplemented": true, "id": 9112, "linearizedBaseContracts": [9112], "name": "CollaboratorLibrary", "nameLocation": "111:19:44", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 8982, "nodeType": "Block", "src": "266:118:44", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 8977, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8973, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8970, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8967, "src": "284:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 8971, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "298:11:44", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9945, "src": "284:25:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 8972, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "312:1:44", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "284:29:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"id": 8976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "317:24:44", "subExpression": {"expression": {"id": 8974, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8967, "src": "318:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 8975, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "332:9:44", "memberName": "isRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 9953, "src": "318:23:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "284:57:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6e6f207375636820636f6c6c61626f7261746f72", "id": 8978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "343:22:44", "typeDescriptions": {"typeIdentifier": "t_stringliteral_dd3eaee9af26edf5ca20b4ad4102ff9e79ac65014d13981382f36c87d6d097ec", "typeString": "literal_string \"no such collaborator\""}, "value": "no such collaborator"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_dd3eaee9af26edf5ca20b4ad4102ff9e79ac65014d13981382f36c87d6d097ec", "typeString": "literal_string \"no such collaborator\""}], "id": 8969, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "276:7:44", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 8979, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "276:90:44", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 8980, "nodeType": "ExpressionStatement", "src": "276:90:44"}, {"id": 8981, "nodeType": "PlaceholderStatement", "src": "376:1:44"}]}, "documentation": {"id": 8964, "nodeType": "StructuredDocumentation", "src": "137:56:44", "text": "@notice Throws if there is no such collaborator"}, "id": 8983, "name": "onlyActiveCollaborator", "nameLocation": "207:22:44", "nodeType": "ModifierDefinition", "parameters": {"id": 8968, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8967, "mutability": "mutable", "name": "collaborator_", "nameLocation": "251:13:44", "nodeType": "VariableDeclaration", "scope": 8983, "src": "230:34:44", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 8966, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 8965, "name": "Collaborator", "nameLocations": ["230:12:44"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "230:12:44"}, "referencedDeclaration": 9954, "src": "230:12:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}], "src": "229:36:44"}, "src": "198:186:44", "virtual": false, "visibility": "internal"}, {"body": {"id": 9022, "nodeType": "Block", "src": "741:242:44", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 8999, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8993, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8987, "src": "759:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 8994, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "773:9:44", "memberName": "isRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 9953, "src": "759:23:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 8998, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 8995, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8987, "src": "786:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 8996, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "800:11:44", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9945, "src": "786:25:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 8997, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "815:1:44", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "786:30:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "759:57:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "636f6c6c61626f7261746f7220616c7265616479206164646564", "id": 9000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "818:28:44", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9f81182aebc803f8492b4fa57889e5cd006f6d8d0213413e13215356efc2594b", "typeString": "literal_string \"collaborator already added\""}, "value": "collaborator already added"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_9f81182aebc803f8492b4fa57889e5cd006f6d8d0213413e13215356efc2594b", "typeString": "literal_string \"collaborator already added\""}], "id": 8992, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "751:7:44", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9001, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "751:96:44", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9002, "nodeType": "ExpressionStatement", "src": "751:96:44"}, {"expression": {"id": 9007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9003, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8987, "src": "858:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9005, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "872:3:44", "memberName": "mgp", "nodeType": "MemberAccess", "referencedDeclaration": 9941, "src": "858:17:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 9006, "name": "mgp_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8989, "src": "878:4:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "858:24:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9008, "nodeType": "ExpressionStatement", "src": "858:24:44"}, {"expression": {"id": 9013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9009, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8987, "src": "892:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9011, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "906:9:44", "memberName": "isRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 9953, "src": "892:23:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "66616c7365", "id": 9012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "918:5:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "src": "892:31:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9014, "nodeType": "ExpressionStatement", "src": "892:31:44"}, {"expression": {"id": 9020, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9015, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8987, "src": "933:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9017, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "947:11:44", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9945, "src": "933:25:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9018, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "961:5:44", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "967:9:44", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "961:15:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "933:43:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9021, "nodeType": "ExpressionStatement", "src": "933:43:44"}]}, "documentation": {"id": 8984, "nodeType": "StructuredDocumentation", "src": "390:261:44", "text": " @notice Adds collaborator, checks for zero address and if already added, records mgp\n @param collaborator_ reference to Collaborator struct\n @param collaborator_ collaborator's address\n @param mgp_ minimum guaranteed payment"}, "id": 9023, "implemented": true, "kind": "function", "modifiers": [], "name": "_addCollaborator", "nameLocation": "665:16:44", "nodeType": "FunctionDefinition", "parameters": {"id": 8990, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 8987, "mutability": "mutable", "name": "collaborator_", "nameLocation": "703:13:44", "nodeType": "VariableDeclaration", "scope": 9023, "src": "682:34:44", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 8986, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 8985, "name": "Collaborator", "nameLocations": ["682:12:44"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "682:12:44"}, "referencedDeclaration": 9954, "src": "682:12:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}, {"constant": false, "id": 8989, "mutability": "mutable", "name": "mgp_", "nameLocation": "726:4:44", "nodeType": "VariableDeclaration", "scope": 9023, "src": "718:12:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 8988, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "718:7:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "681:50:44"}, "returnParameters": {"id": 8991, "nodeType": "ParameterList", "parameters": [], "src": "741:0:44"}, "scope": 9112, "src": "656:327:44", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9048, "nodeType": "Block", "src": "1246:150:44", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9034, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9027, "src": "1264:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1278:15:44", "memberName": "timeMgpApproved", "nodeType": "MemberAccess", "referencedDeclaration": 9947, "src": "1264:29:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 9036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1297:1:44", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1264:34:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "636f6c6c61626f7261746f7220616c726561647920617070726f766564", "id": 9038, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1300:31:44", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9aa32d0c3db36a241e731db8b39086c1a0c45112959f9ddfc19f6c546bd4eeb5", "typeString": "literal_string \"collaborator already approved\""}, "value": "collaborator already approved"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_9aa32d0c3db36a241e731db8b39086c1a0c45112959f9ddfc19f6c546bd4eeb5", "typeString": "literal_string \"collaborator already approved\""}], "id": 9033, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1256:7:44", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9039, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1256:76:44", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9040, "nodeType": "ExpressionStatement", "src": "1256:76:44"}, {"expression": {"id": 9046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9041, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9027, "src": "1342:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9043, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1356:15:44", "memberName": "timeMgpApproved", "nodeType": "MemberAccess", "referencedDeclaration": 9947, "src": "1342:29:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9044, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1374:5:44", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1380:9:44", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "1374:15:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1342:47:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9047, "nodeType": "ExpressionStatement", "src": "1342:47:44"}]}, "documentation": {"id": 9024, "nodeType": "StructuredDocumentation", "src": "989:139:44", "text": " @notice Approves collaborator's MGP or deletes collaborator\n @param collaborator_ reference to Collaborator struct"}, "id": 9049, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9030, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9027, "src": "1231:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}], "id": 9031, "kind": "modifierInvocation", "modifierName": {"id": 9029, "name": "onlyActiveCollaborator", "nameLocations": ["1208:22:44"], "nodeType": "IdentifierPath", "referencedDeclaration": 8983, "src": "1208:22:44"}, "nodeType": "ModifierInvocation", "src": "1208:37:44"}], "name": "_approveCollaborator", "nameLocation": "1142:20:44", "nodeType": "FunctionDefinition", "parameters": {"id": 9028, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9027, "mutability": "mutable", "name": "collaborator_", "nameLocation": "1184:13:44", "nodeType": "VariableDeclaration", "scope": 9049, "src": "1163:34:44", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 9026, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9025, "name": "Collaborator", "nameLocations": ["1163:12:44"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "1163:12:44"}, "referencedDeclaration": 9954, "src": "1163:12:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}], "src": "1162:36:44"}, "returnParameters": {"id": 9032, "nodeType": "ParameterList", "parameters": [], "src": "1246:0:44"}, "scope": 9112, "src": "1133:263:44", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9064, "nodeType": "Block", "src": "1514:47:44", "statements": [{"expression": {"id": 9062, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9058, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9052, "src": "1524:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9060, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1538:9:44", "memberName": "isRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 9953, "src": "1524:23:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "74727565", "id": 9061, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1550:4:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "src": "1524:30:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9063, "nodeType": "ExpressionStatement", "src": "1524:30:44"}]}, "id": 9065, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9055, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9052, "src": "1499:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}], "id": 9056, "kind": "modifierInvocation", "modifierName": {"id": 9054, "name": "onlyActiveCollaborator", "nameLocations": ["1476:22:44"], "nodeType": "IdentifierPath", "referencedDeclaration": 8983, "src": "1476:22:44"}, "nodeType": "ModifierInvocation", "src": "1476:37:44"}], "name": "_removeCollaborator", "nameLocation": "1411:19:44", "nodeType": "FunctionDefinition", "parameters": {"id": 9053, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9052, "mutability": "mutable", "name": "collaborator_", "nameLocation": "1452:13:44", "nodeType": "VariableDeclaration", "scope": 9065, "src": "1431:34:44", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 9051, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9050, "name": "Collaborator", "nameLocations": ["1431:12:44"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "1431:12:44"}, "referencedDeclaration": 9954, "src": "1431:12:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}], "src": "1430:36:44"}, "returnParameters": {"id": 9057, "nodeType": "ParameterList", "parameters": [], "src": "1514:0:44"}, "scope": 9112, "src": "1402:159:44", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9110, "nodeType": "Block", "src": "1828:269:44", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9081, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9078, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9069, "src": "1846:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9079, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1860:11:44", "memberName": "timeMgpPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9949, "src": "1846:25:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 9080, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1875:1:44", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1846:30:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "72657761726420616c72656164792070616964", "id": 9082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1878:21:44", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f53c2500433bb0b85f01600844b341babdb8856d948cdb67a1d17e1bab9f9a46", "typeString": "literal_string \"reward already paid\""}, "value": "reward already paid"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_f53c2500433bb0b85f01600844b341babdb8856d948cdb67a1d17e1bab9f9a46", "typeString": "literal_string \"reward already paid\""}], "id": 9077, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1838:7:44", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9083, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1838:62:44", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9084, "nodeType": "ExpressionStatement", "src": "1838:62:44"}, {"expression": {"id": 9090, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9085, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9069, "src": "1910:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9087, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1924:11:44", "memberName": "timeMgpPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9949, "src": "1910:25:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9088, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1938:5:44", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1944:9:44", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "1938:15:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1910:43:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9091, "nodeType": "ExpressionStatement", "src": "1910:43:44"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 9092, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9071, "src": "1967:6:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 9093, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1976:1:44", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1967:10:44", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9109, "nodeType": "IfStatement", "src": "1963:128:44", "trueBody": {"id": 9108, "nodeType": "Block", "src": "1979:112:44", "statements": [{"expression": {"id": 9099, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9095, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9069, "src": "1993:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9097, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2007:5:44", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 9943, "src": "1993:19:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 9098, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9071, "src": "2015:6:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1993:28:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9100, "nodeType": "ExpressionStatement", "src": "1993:28:44"}, {"expression": {"id": 9106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9101, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9069, "src": "2035:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}, "id": 9103, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2049:13:44", "memberName": "timeBonusPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9951, "src": "2035:27:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9104, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "2065:5:44", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2071:9:44", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "2065:15:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2035:45:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9107, "nodeType": "ExpressionStatement", "src": "2035:45:44"}]}}]}, "documentation": {"id": 9066, "nodeType": "StructuredDocumentation", "src": "1567:137:44", "text": " @notice Pay Reward to collaborator\n @param collaborator_ collaborator\n @param bonus_ bonus of collaborator"}, "id": 9111, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9074, "name": "collaborator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9069, "src": "1813:13:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator storage pointer"}}], "id": 9075, "kind": "modifierInvocation", "modifierName": {"id": 9073, "name": "onlyActiveCollaborator", "nameLocations": ["1790:22:44"], "nodeType": "IdentifierPath", "referencedDeclaration": 8983, "src": "1790:22:44"}, "nodeType": "ModifierInvocation", "src": "1790:37:44"}], "name": "_payReward", "nameLocation": "1718:10:44", "nodeType": "FunctionDefinition", "parameters": {"id": 9072, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9069, "mutability": "mutable", "name": "collaborator_", "nameLocation": "1750:13:44", "nodeType": "VariableDeclaration", "scope": 9111, "src": "1729:34:44", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}, "typeName": {"id": 9068, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9067, "name": "Collaborator", "nameLocations": ["1729:12:44"], "nodeType": "IdentifierPath", "referencedDeclaration": 9954, "src": "1729:12:44"}, "referencedDeclaration": 9954, "src": "1729:12:44", "typeDescriptions": {"typeIdentifier": "t_struct$_Collaborator_$9954_storage_ptr", "typeString": "struct Collaborator"}}, "visibility": "internal"}, {"constant": false, "id": 9071, "mutability": "mutable", "name": "bonus_", "nameLocation": "1773:6:44", "nodeType": "VariableDeclaration", "scope": 9111, "src": "1765:14:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9070, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1765:7:44", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1728:52:44"}, "returnParameters": {"id": 9076, "nodeType": "ParameterList", "parameters": [], "src": "1828:0:44"}, "scope": 9112, "src": "1709:388:44", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}], "scope": 9113, "src": "103:1996:44", "usedErrors": []}], "src": "32:2068:44"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/ObserverLibrary.sol": {"AST": {"absolutePath": "contracts/libraries/ObserverLibrary.sol", "exportedSymbols": {"Observer": [9961], "ObserverLibrary": [9203]}, "id": 9204, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 9114, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:45"}, {"absolutePath": "contracts/libraries/Structs.sol", "file": "./Structs.sol", "id": 9116, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 9204, "sourceUnit": 9962, "src": "56:41:45", "symbolAliases": [{"foreign": {"id": 9115, "name": "Observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9961, "src": "65:8:45", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [], "canonicalName": "ObserverLibrary", "contractDependencies": [], "contractKind": "library", "fullyImplemented": true, "id": 9203, "linearizedBaseContracts": [9203], "name": "ObserverLibrary", "nameLocation": "107:15:45", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 9135, "nodeType": "Block", "src": "243:106:45", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 9130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9123, "name": "observer_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9120, "src": "261:9:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 9124, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "271:11:45", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9956, "src": "261:21:45", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 9125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "285:1:45", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "261:25:45", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"id": 9129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "290:20:45", "subExpression": {"expression": {"id": 9127, "name": "observer_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9120, "src": "291:9:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 9128, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "301:9:45", "memberName": "isRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 9960, "src": "291:19:45", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "261:49:45", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6e6f2073756368206f62736572766572", "id": 9131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "312:18:45", "typeDescriptions": {"typeIdentifier": "t_stringliteral_fb1f2102dd620d8db71c215406addd7f1da90c80756b1661c74f5edaf19afaf0", "typeString": "literal_string \"no such observer\""}, "value": "no such observer"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_fb1f2102dd620d8db71c215406addd7f1da90c80756b1661c74f5edaf19afaf0", "typeString": "literal_string \"no such observer\""}], "id": 9122, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "253:7:45", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9132, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "253:78:45", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9133, "nodeType": "ExpressionStatement", "src": "253:78:45"}, {"id": 9134, "nodeType": "PlaceholderStatement", "src": "341:1:45"}]}, "documentation": {"id": 9117, "nodeType": "StructuredDocumentation", "src": "129:53:45", "text": "@notice Throws if there is no such observer"}, "id": 9136, "name": "onlyActiveObserver", "nameLocation": "196:18:45", "nodeType": "ModifierDefinition", "parameters": {"id": 9121, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9120, "mutability": "mutable", "name": "observer_", "nameLocation": "232:9:45", "nodeType": "VariableDeclaration", "scope": 9136, "src": "215:26:45", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}, "typeName": {"id": 9119, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9118, "name": "Observer", "nameLocations": ["215:8:45"], "nodeType": "IdentifierPath", "referencedDeclaration": 9961, "src": "215:8:45"}, "referencedDeclaration": 9961, "src": "215:8:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}}, "visibility": "internal"}], "src": "214:28:45"}, "src": "187:162:45", "virtual": false, "visibility": "internal"}, {"body": {"id": 9158, "nodeType": "Block", "src": "510:127:45", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9144, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9140, "src": "528:9:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 9145, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "538:11:45", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9956, "src": "528:21:45", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 9146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "553:1:45", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "528:26:45", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6f6273657276657220616c7265616479206164646564", "id": 9148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "556:24:45", "typeDescriptions": {"typeIdentifier": "t_stringliteral_01db46ba4e9a905e53e493d9618107ebf5213085ffb9e60273f9e53fa60ac1d3", "typeString": "literal_string \"observer already added\""}, "value": "observer already added"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_01db46ba4e9a905e53e493d9618107ebf5213085ffb9e60273f9e53fa60ac1d3", "typeString": "literal_string \"observer already added\""}], "id": 9143, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "520:7:45", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9149, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "520:61:45", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9150, "nodeType": "ExpressionStatement", "src": "520:61:45"}, {"expression": {"id": 9156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9151, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9140, "src": "591:9:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 9153, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "601:11:45", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9956, "src": "591:21:45", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9154, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "615:5:45", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "621:9:45", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "615:15:45", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "591:39:45", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9157, "nodeType": "ExpressionStatement", "src": "591:39:45"}]}, "documentation": {"id": 9137, "nodeType": "StructuredDocumentation", "src": "355:91:45", "text": " @notice Add observer to package\n @param _observer Observer address"}, "id": 9159, "implemented": true, "kind": "function", "modifiers": [], "name": "_addObserver", "nameLocation": "460:12:45", "nodeType": "FunctionDefinition", "parameters": {"id": 9141, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9140, "mutability": "mutable", "name": "_observer", "nameLocation": "490:9:45", "nodeType": "VariableDeclaration", "scope": 9159, "src": "473:26:45", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}, "typeName": {"id": 9139, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9138, "name": "Observer", "nameLocations": ["473:8:45"], "nodeType": "IdentifierPath", "referencedDeclaration": 9961, "src": "473:8:45"}, "referencedDeclaration": 9961, "src": "473:8:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}}, "visibility": "internal"}], "src": "472:28:45"}, "returnParameters": {"id": 9142, "nodeType": "ParameterList", "parameters": [], "src": "510:0:45"}, "scope": 9203, "src": "451:186:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9175, "nodeType": "Block", "src": "836:43:45", "statements": [{"expression": {"id": 9173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9169, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9163, "src": "846:9:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 9171, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "856:9:45", "memberName": "isRemoved", "nodeType": "MemberAccess", "referencedDeclaration": 9960, "src": "846:19:45", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "74727565", "id": 9172, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "868:4:45", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "src": "846:26:45", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9174, "nodeType": "ExpressionStatement", "src": "846:26:45"}]}, "documentation": {"id": 9160, "nodeType": "StructuredDocumentation", "src": "643:96:45", "text": " @notice Remove observer from package\n @param _observer Observer address"}, "id": 9176, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9166, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9163, "src": "825:9:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}], "id": 9167, "kind": "modifierInvocation", "modifierName": {"id": 9165, "name": "onlyActiveObserver", "nameLocations": ["806:18:45"], "nodeType": "IdentifierPath", "referencedDeclaration": 9136, "src": "806:18:45"}, "nodeType": "ModifierInvocation", "src": "806:29:45"}], "name": "_removeObserver", "nameLocation": "753:15:45", "nodeType": "FunctionDefinition", "parameters": {"id": 9164, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9163, "mutability": "mutable", "name": "_observer", "nameLocation": "786:9:45", "nodeType": "VariableDeclaration", "scope": 9176, "src": "769:26:45", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}, "typeName": {"id": 9162, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9161, "name": "Observer", "nameLocations": ["769:8:45"], "nodeType": "IdentifierPath", "referencedDeclaration": 9961, "src": "769:8:45"}, "referencedDeclaration": 9961, "src": "769:8:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}}, "visibility": "internal"}], "src": "768:28:45"}, "returnParameters": {"id": 9168, "nodeType": "ParameterList", "parameters": [], "src": "836:0:45"}, "scope": 9203, "src": "744:135:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9201, "nodeType": "Block", "src": "1068:124:45", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9187, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9180, "src": "1086:9:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 9188, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1096:8:45", "memberName": "timePaid", "nodeType": "MemberAccess", "referencedDeclaration": 9958, "src": "1086:18:45", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 9189, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1108:1:45", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1086:23:45", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6f627365727665722066656520616c72656164792070616964", "id": 9191, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1111:27:45", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ee9f4e3a064528f67a06f6c0c0b451292b182050371e5e273e76be66e73b1e68", "typeString": "literal_string \"observer fee already paid\""}, "value": "observer fee already paid"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_ee9f4e3a064528f67a06f6c0c0b451292b182050371e5e273e76be66e73b1e68", "typeString": "literal_string \"observer fee already paid\""}], "id": 9186, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1078:7:45", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9192, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1078:61:45", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9193, "nodeType": "ExpressionStatement", "src": "1078:61:45"}, {"expression": {"id": 9199, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9194, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9180, "src": "1149:9:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}, "id": 9196, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1159:8:45", "memberName": "timePaid", "nodeType": "MemberAccess", "referencedDeclaration": 9958, "src": "1149:18:45", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9197, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1170:5:45", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1176:9:45", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "1170:15:45", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1149:36:45", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9200, "nodeType": "ExpressionStatement", "src": "1149:36:45"}]}, "documentation": {"id": 9177, "nodeType": "StructuredDocumentation", "src": "885:86:45", "text": " @notice Observer claim fee\n @param _observer Observer address"}, "id": 9202, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9183, "name": "_observer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9180, "src": "1057:9:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer storage pointer"}}], "id": 9184, "kind": "modifierInvocation", "modifierName": {"id": 9182, "name": "onlyActiveObserver", "nameLocations": ["1038:18:45"], "nodeType": "IdentifierPath", "referencedDeclaration": 9136, "src": "1038:18:45"}, "nodeType": "ModifierInvocation", "src": "1038:29:45"}], "name": "_payObserverFee", "nameLocation": "985:15:45", "nodeType": "FunctionDefinition", "parameters": {"id": 9181, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9180, "mutability": "mutable", "name": "_observer", "nameLocation": "1018:9:45", "nodeType": "VariableDeclaration", "scope": 9202, "src": "1001:26:45", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}, "typeName": {"id": 9179, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9178, "name": "Observer", "nameLocations": ["1001:8:45"], "nodeType": "IdentifierPath", "referencedDeclaration": 9961, "src": "1001:8:45"}, "referencedDeclaration": 9961, "src": "1001:8:45", "typeDescriptions": {"typeIdentifier": "t_struct$_Observer_$9961_storage_ptr", "typeString": "struct Observer"}}, "visibility": "internal"}], "src": "1000:28:45"}, "returnParameters": {"id": 9185, "nodeType": "ParameterList", "parameters": [], "src": "1068:0:45"}, "scope": 9203, "src": "976:216:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}], "scope": 9204, "src": "99:1095:45", "usedErrors": []}], "src": "32:1163:45"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/PackageLibrary.sol": {"AST": {"absolutePath": "contracts/libraries/PackageLibrary.sol", "exportedSymbols": {"Package": [9939], "PackageLibrary": [9645]}, "id": 9646, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 9205, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:46"}, {"absolutePath": "contracts/libraries/Structs.sol", "file": "./Structs.sol", "id": 9207, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 9646, "sourceUnit": 9962, "src": "56:40:46", "symbolAliases": [{"foreign": {"id": 9206, "name": "Package", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9939, "src": "65:7:46", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [], "canonicalName": "PackageLibrary", "contractDependencies": [], "contractKind": "library", "fullyImplemented": true, "id": 9645, "linearizedBaseContracts": [9645], "name": "PackageLibrary", "nameLocation": "106:14:46", "nodeType": "ContractDefinition", "nodes": [{"constant": true, "functionSelector": "eb892b10", "id": 9210, "mutability": "constant", "name": "MAX_COLLABORATORS", "nameLocation": "151:17:46", "nodeType": "VariableDeclaration", "scope": 9645, "src": "127:46:46", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9208, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "127:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "value": {"hexValue": "3130", "id": 9209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "171:2:46", "typeDescriptions": {"typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10"}, "value": "10"}, "visibility": "public"}, {"constant": true, "functionSelector": "ec120a00", "id": 9213, "mutability": "constant", "name": "MAX_OBSERVERS", "nameLocation": "203:13:46", "nodeType": "VariableDeclaration", "scope": 9645, "src": "179:42:46", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9211, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "179:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "value": {"hexValue": "3130", "id": 9212, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "219:2:46", "typeDescriptions": {"typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10"}, "value": "10"}, "visibility": "public"}, {"body": {"id": 9226, "nodeType": "Block", "src": "333:73:46", "statements": [{"expression": {"arguments": [{"expression": {"id": 9220, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9217, "src": "351:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9221, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "360:8:46", "memberName": "isActive", "nodeType": "MemberAccess", "referencedDeclaration": 9938, "src": "351:17:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6e6f2073756368207061636b616765", "id": 9222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "370:17:46", "typeDescriptions": {"typeIdentifier": "t_stringliteral_56c9ff310e93ba0b6293590b2d28d1a49f0d4749d1f67471bbb2c4512c7b1b3a", "typeString": "literal_string \"no such package\""}, "value": "no such package"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_56c9ff310e93ba0b6293590b2d28d1a49f0d4749d1f67471bbb2c4512c7b1b3a", "typeString": "literal_string \"no such package\""}], "id": 9219, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "343:7:46", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9223, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "343:45:46", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9224, "nodeType": "ExpressionStatement", "src": "343:45:46"}, {"id": 9225, "nodeType": "PlaceholderStatement", "src": "398:1:46"}]}, "documentation": {"id": 9214, "nodeType": "StructuredDocumentation", "src": "228:47:46", "text": "@notice Throws if there is no package"}, "id": 9227, "name": "onlyActivePackage", "nameLocation": "289:17:46", "nodeType": "ModifierDefinition", "parameters": {"id": 9218, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9217, "mutability": "mutable", "name": "package_", "nameLocation": "323:8:46", "nodeType": "VariableDeclaration", "scope": 9227, "src": "307:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9216, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9215, "name": "Package", "nameLocations": ["307:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "307:7:46"}, "referencedDeclaration": 9939, "src": "307:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "src": "306:26:46"}, "src": "280:126:46", "virtual": false, "visibility": "internal"}, {"body": {"id": 9290, "nodeType": "Block", "src": "906:391:46", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_bool", "typeString": "bool"}, "id": 9249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"hexValue": "30", "id": 9243, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "924:1:46", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"id": 9244, "name": "collaboratorsLimit_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9239, "src": "928:19:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "924:23:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9248, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 9246, "name": "collaboratorsLimit_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9239, "src": "951:19:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": {"id": 9247, "name": "MAX_COLLABORATORS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9210, "src": "974:17:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "951:40:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "src": "924:67:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "696e636f727265637420636f6c6c61626f7261746f7273206c696d6974", "id": 9250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "993:31:46", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c2595518826147acf35eff0a23a45682bdf83e012ca3d11c85ffd5120c0b9653", "typeString": "literal_string \"incorrect collaborators limit\""}, "value": "incorrect collaborators limit"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_c2595518826147acf35eff0a23a45682bdf83e012ca3d11c85ffd5120c0b9653", "typeString": "literal_string \"incorrect collaborators limit\""}], "id": 9242, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "916:7:46", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9251, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "916:109:46", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9252, "nodeType": "ExpressionStatement", "src": "916:109:46"}, {"expression": {"id": 9257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9253, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9231, "src": "1035:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9255, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1044:6:46", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 9908, "src": "1035:15:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 9256, "name": "budget_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9233, "src": "1053:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1035:25:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9258, "nodeType": "ExpressionStatement", "src": "1035:25:46"}, {"expression": {"id": 9263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9259, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9231, "src": "1070:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9261, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1079:15:46", "memberName": "budgetObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9914, "src": "1070:24:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 9262, "name": "feeObserversBudget_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9235, "src": "1097:19:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1070:46:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9264, "nodeType": "ExpressionStatement", "src": "1070:46:46"}, {"expression": {"id": 9269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9265, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9231, "src": "1126:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9267, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1135:5:46", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 9918, "src": "1126:14:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 9268, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9237, "src": "1143:6:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1126:23:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9270, "nodeType": "ExpressionStatement", "src": "1126:23:46"}, {"expression": {"id": 9275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9271, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9231, "src": "1159:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9273, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1168:18:46", "memberName": "collaboratorsLimit", "nodeType": "MemberAccess", "referencedDeclaration": 9932, "src": "1159:27:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 9274, "name": "collaboratorsLimit_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9239, "src": "1189:19:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1159:49:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9276, "nodeType": "ExpressionStatement", "src": "1159:49:46"}, {"expression": {"id": 9282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9277, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9231, "src": "1218:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9279, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1227:11:46", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9924, "src": "1218:20:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9280, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1241:5:46", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1247:9:46", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "1241:15:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1218:38:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9283, "nodeType": "ExpressionStatement", "src": "1218:38:46"}, {"expression": {"id": 9288, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9284, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9231, "src": "1266:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9286, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1275:8:46", "memberName": "isActive", "nodeType": "MemberAccess", "referencedDeclaration": 9938, "src": "1266:17:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "74727565", "id": 9287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1286:4:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "true"}, "src": "1266:24:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9289, "nodeType": "ExpressionStatement", "src": "1266:24:46"}]}, "documentation": {"id": 9228, "nodeType": "StructuredDocumentation", "src": "412:293:46", "text": " @notice Creates package in project\n @param package_ reference to Package struct\n @param budget_ MGP budget\n @param feeObserversBudget_ Observers fee budget\n @param bonus_ Bonus budget\n @param collaboratorsLimit_ Limit on number of collaborators"}, "id": 9291, "implemented": true, "kind": "function", "modifiers": [], "name": "_createPackage", "nameLocation": "719:14:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9240, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9231, "mutability": "mutable", "name": "package_", "nameLocation": "759:8:46", "nodeType": "VariableDeclaration", "scope": 9291, "src": "743:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9230, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9229, "name": "Package", "nameLocations": ["743:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "743:7:46"}, "referencedDeclaration": 9939, "src": "743:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}, {"constant": false, "id": 9233, "mutability": "mutable", "name": "budget_", "nameLocation": "785:7:46", "nodeType": "VariableDeclaration", "scope": 9291, "src": "777:15:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9232, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "777:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9235, "mutability": "mutable", "name": "feeObserversBudget_", "nameLocation": "810:19:46", "nodeType": "VariableDeclaration", "scope": 9291, "src": "802:27:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9234, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "802:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9237, "mutability": "mutable", "name": "bonus_", "nameLocation": "847:6:46", "nodeType": "VariableDeclaration", "scope": 9291, "src": "839:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9236, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "839:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9239, "mutability": "mutable", "name": "collaboratorsLimit_", "nameLocation": "871:19:46", "nodeType": "VariableDeclaration", "scope": 9291, "src": "863:27:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9238, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "863:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "733:163:46"}, "returnParameters": {"id": 9241, "nodeType": "ParameterList", "parameters": [], "src": "906:0:46"}, "scope": 9645, "src": "710:587:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9314, "nodeType": "Block", "src": "1493:91:46", "statements": [{"expression": {"id": 9306, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9301, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9295, "src": "1503:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9303, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1512:12:46", "memberName": "timeCanceled", "nodeType": "MemberAccess", "referencedDeclaration": 9936, "src": "1503:21:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9304, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1527:5:46", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1533:9:46", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "1527:15:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1503:39:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9307, "nodeType": "ExpressionStatement", "src": "1503:39:46"}, {"expression": {"id": 9312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9308, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9295, "src": "1552:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9310, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1561:8:46", "memberName": "isActive", "nodeType": "MemberAccess", "referencedDeclaration": 9938, "src": "1552:17:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "66616c7365", "id": 9311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1572:5:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "src": "1552:25:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9313, "nodeType": "ExpressionStatement", "src": "1552:25:46"}]}, "documentation": {"id": 9292, "nodeType": "StructuredDocumentation", "src": "1303:98:46", "text": " @notice Cancel package in project\n @param package_ Package want to cancel"}, "id": 9315, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9298, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9295, "src": "1483:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}], "id": 9299, "kind": "modifierInvocation", "modifierName": {"id": 9297, "name": "onlyActivePackage", "nameLocations": ["1465:17:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9227, "src": "1465:17:46"}, "nodeType": "ModifierInvocation", "src": "1465:27:46"}], "name": "_cancelPackage", "nameLocation": "1415:14:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9296, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9295, "mutability": "mutable", "name": "package_", "nameLocation": "1446:8:46", "nodeType": "VariableDeclaration", "scope": 9315, "src": "1430:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9294, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9293, "name": "Package", "nameLocations": ["1430:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "1430:7:46"}, "referencedDeclaration": 9939, "src": "1430:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "src": "1429:26:46"}, "returnParameters": {"id": 9300, "nodeType": "ParameterList", "parameters": [], "src": "1493:0:46"}, "scope": 9645, "src": "1406:178:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9338, "nodeType": "Block", "src": "1782:125:46", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9329, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9326, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9319, "src": "1800:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9327, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1809:14:46", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "1800:23:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"id": 9328, "name": "MAX_OBSERVERS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9213, "src": "1826:13:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1800:39:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6d6178206f62736572766572732072656163686564", "id": 9330, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1841:23:46", "typeDescriptions": {"typeIdentifier": "t_stringliteral_21f03a67f75d29f065c0bd0684b80ec466de07e7b8cabcaad45ccdfd9184e001", "typeString": "literal_string \"max observers reached\""}, "value": "max observers reached"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_21f03a67f75d29f065c0bd0684b80ec466de07e7b8cabcaad45ccdfd9184e001", "typeString": "literal_string \"max observers reached\""}], "id": 9325, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1792:7:46", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9331, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1792:73:46", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9332, "nodeType": "ExpressionStatement", "src": "1792:73:46"}, {"expression": {"id": 9336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "1875:25:46", "subExpression": {"expression": {"id": 9333, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9319, "src": "1875:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9335, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1884:14:46", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "1875:23:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9337, "nodeType": "ExpressionStatement", "src": "1875:25:46"}]}, "documentation": {"id": 9316, "nodeType": "StructuredDocumentation", "src": "1590:102:46", "text": " @notice Adds observer to package\n @param package_ reference to Package struct"}, "id": 9339, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9322, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9319, "src": "1772:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}], "id": 9323, "kind": "modifierInvocation", "modifierName": {"id": 9321, "name": "onlyActivePackage", "nameLocations": ["1754:17:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9227, "src": "1754:17:46"}, "nodeType": "ModifierInvocation", "src": "1754:27:46"}], "name": "_addObserver", "nameLocation": "1706:12:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9320, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9319, "mutability": "mutable", "name": "package_", "nameLocation": "1735:8:46", "nodeType": "VariableDeclaration", "scope": 9339, "src": "1719:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9318, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9317, "name": "Package", "nameLocations": ["1719:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "1719:7:46"}, "referencedDeclaration": 9939, "src": "1719:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "src": "1718:26:46"}, "returnParameters": {"id": 9324, "nodeType": "ParameterList", "parameters": [], "src": "1782:0:46"}, "scope": 9645, "src": "1697:210:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9367, "nodeType": "Block", "src": "2164:143:46", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9352, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9343, "src": "2182:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9353, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "2191:14:46", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "2182:23:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"id": 9354, "name": "count_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9345, "src": "2208:6:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2182:32:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": {"id": 9356, "name": "MAX_OBSERVERS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9213, "src": "2218:13:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2182:49:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6d6178206f62736572766572732072656163686564", "id": 9358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2233:23:46", "typeDescriptions": {"typeIdentifier": "t_stringliteral_21f03a67f75d29f065c0bd0684b80ec466de07e7b8cabcaad45ccdfd9184e001", "typeString": "literal_string \"max observers reached\""}, "value": "max observers reached"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_21f03a67f75d29f065c0bd0684b80ec466de07e7b8cabcaad45ccdfd9184e001", "typeString": "literal_string \"max observers reached\""}], "id": 9351, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2174:7:46", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9359, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2174:83:46", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9360, "nodeType": "ExpressionStatement", "src": "2174:83:46"}, {"expression": {"id": 9365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9361, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9343, "src": "2267:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9363, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2276:14:46", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "2267:23:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 9364, "name": "count_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9345, "src": "2294:6:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2267:33:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9366, "nodeType": "ExpressionStatement", "src": "2267:33:46"}]}, "documentation": {"id": 9340, "nodeType": "StructuredDocumentation", "src": "1913:144:46", "text": " @notice Adds observers to package\n @param package_ reference to Package struct\n @param count_ number of observers"}, "id": 9368, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9348, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9343, "src": "2154:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}], "id": 9349, "kind": "modifierInvocation", "modifierName": {"id": 9347, "name": "onlyActivePackage", "nameLocations": ["2136:17:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9227, "src": "2136:17:46"}, "nodeType": "ModifierInvocation", "src": "2136:27:46"}], "name": "_addObservers", "nameLocation": "2071:13:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9346, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9343, "mutability": "mutable", "name": "package_", "nameLocation": "2101:8:46", "nodeType": "VariableDeclaration", "scope": 9368, "src": "2085:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9342, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9341, "name": "Package", "nameLocations": ["2085:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "2085:7:46"}, "referencedDeclaration": 9939, "src": "2085:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}, {"constant": false, "id": 9345, "mutability": "mutable", "name": "count_", "nameLocation": "2119:6:46", "nodeType": "VariableDeclaration", "scope": 9368, "src": "2111:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9344, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2111:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2084:42:46"}, "returnParameters": {"id": 9350, "nodeType": "ParameterList", "parameters": [], "src": "2164:0:46"}, "scope": 9645, "src": "2062:245:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9383, "nodeType": "Block", "src": "2513:42:46", "statements": [{"expression": {"id": 9381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "--", "prefix": false, "src": "2523:25:46", "subExpression": {"expression": {"id": 9378, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9372, "src": "2523:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9380, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2532:14:46", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "2523:23:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9382, "nodeType": "ExpressionStatement", "src": "2523:25:46"}]}, "documentation": {"id": 9369, "nodeType": "StructuredDocumentation", "src": "2313:107:46", "text": " @notice Removes observer from package\n @param package_ reference to Package struct"}, "id": 9384, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9375, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9372, "src": "2503:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}], "id": 9376, "kind": "modifierInvocation", "modifierName": {"id": 9374, "name": "onlyActivePackage", "nameLocations": ["2485:17:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9227, "src": "2485:17:46"}, "nodeType": "ModifierInvocation", "src": "2485:27:46"}], "name": "_removeObserver", "nameLocation": "2434:15:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9373, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9372, "mutability": "mutable", "name": "package_", "nameLocation": "2466:8:46", "nodeType": "VariableDeclaration", "scope": 9384, "src": "2450:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9371, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9370, "name": "Package", "nameLocations": ["2450:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "2450:7:46"}, "referencedDeclaration": 9939, "src": "2450:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "src": "2449:26:46"}, "returnParameters": {"id": 9377, "nodeType": "ParameterList", "parameters": [], "src": "2513:0:46"}, "scope": 9645, "src": "2425:130:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9402, "nodeType": "Block", "src": "2820:50:46", "statements": [{"expression": {"id": 9400, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9396, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9388, "src": "2830:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9398, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2839:14:46", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "2830:23:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"id": 9399, "name": "count_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9390, "src": "2857:6:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2830:33:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9401, "nodeType": "ExpressionStatement", "src": "2830:33:46"}]}, "documentation": {"id": 9385, "nodeType": "StructuredDocumentation", "src": "2561:149:46", "text": " @notice Removes observers from package\n @param package_ reference to Package struct\n @param count_ number of observers"}, "id": 9403, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9393, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9388, "src": "2810:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}], "id": 9394, "kind": "modifierInvocation", "modifierName": {"id": 9392, "name": "onlyActivePackage", "nameLocations": ["2792:17:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9227, "src": "2792:17:46"}, "nodeType": "ModifierInvocation", "src": "2792:27:46"}], "name": "_removeObservers", "nameLocation": "2724:16:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9391, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9388, "mutability": "mutable", "name": "package_", "nameLocation": "2757:8:46", "nodeType": "VariableDeclaration", "scope": 9403, "src": "2741:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9387, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9386, "name": "Package", "nameLocations": ["2741:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "2741:7:46"}, "referencedDeclaration": 9939, "src": "2741:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}, {"constant": false, "id": 9390, "mutability": "mutable", "name": "count_", "nameLocation": "2775:6:46", "nodeType": "VariableDeclaration", "scope": 9403, "src": "2767:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9389, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2767:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2740:42:46"}, "returnParameters": {"id": 9395, "nodeType": "ParameterList", "parameters": [], "src": "2820:0:46"}, "scope": 9645, "src": "2715:155:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9446, "nodeType": "Block", "src": "3121:304:46", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9416, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9407, "src": "3139:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9417, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3148:6:46", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 9908, "src": "3139:15:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9418, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9407, "src": "3158:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9419, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3167:15:46", "memberName": "budgetAllocated", "nodeType": "MemberAccess", "referencedDeclaration": 9910, "src": "3158:24:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"id": 9420, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9409, "src": "3185:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3158:34:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3139:53:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6e6f7420656e6f756768207061636b61676520627564676574206c656674", "id": 9423, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3194:32:46", "typeDescriptions": {"typeIdentifier": "t_stringliteral_42cd87441756dfcff667d305ed8b2b69ff23b7c6b2dc426555029df43be6f274", "typeString": "literal_string \"not enough package budget left\""}, "value": "not enough package budget left"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_42cd87441756dfcff667d305ed8b2b69ff23b7c6b2dc426555029df43be6f274", "typeString": "literal_string \"not enough package budget left\""}], "id": 9415, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3131:7:46", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9424, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3131:96:46", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9425, "nodeType": "ExpressionStatement", "src": "3131:96:46"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9427, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9407, "src": "3245:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9428, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3254:18:46", "memberName": "totalCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9930, "src": "3245:27:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"expression": {"id": 9429, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9407, "src": "3275:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9430, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3284:18:46", "memberName": "collaboratorsLimit", "nodeType": "MemberAccess", "referencedDeclaration": 9932, "src": "3275:27:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3245:57:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "636f6c6c61626f7261746f7273206c696d69742072656163686564", "id": 9432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3304:29:46", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e5c338fbe89973c08e13e9a3c7a7bbd52c8e4d6456038cfdf1e6e6b93b5c28b5", "typeString": "literal_string \"collaborators limit reached\""}, "value": "collaborators limit reached"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_e5c338fbe89973c08e13e9a3c7a7bbd52c8e4d6456038cfdf1e6e6b93b5c28b5", "typeString": "literal_string \"collaborators limit reached\""}], "id": 9426, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3237:7:46", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9433, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3237:97:46", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9434, "nodeType": "ExpressionStatement", "src": "3237:97:46"}, {"expression": {"id": 9439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9435, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9407, "src": "3344:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9437, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "3353:15:46", "memberName": "budgetAllocated", "nodeType": "MemberAccess", "referencedDeclaration": 9910, "src": "3344:24:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 9438, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9409, "src": "3372:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3344:35:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9440, "nodeType": "ExpressionStatement", "src": "3344:35:46"}, {"expression": {"id": 9444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3389:29:46", "subExpression": {"expression": {"id": 9441, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9407, "src": "3389:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9443, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "3398:18:46", "memberName": "totalCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9930, "src": "3389:27:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9445, "nodeType": "ExpressionStatement", "src": "3389:29:46"}]}, "documentation": {"id": 9404, "nodeType": "StructuredDocumentation", "src": "2876:135:46", "text": " @notice Allocate budget to collaborator and increase number of collaborators\n @param amount_ amount to reserve"}, "id": 9447, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9412, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9407, "src": "3111:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}], "id": 9413, "kind": "modifierInvocation", "modifierName": {"id": 9411, "name": "onlyActivePackage", "nameLocations": ["3093:17:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9227, "src": "3093:17:46"}, "nodeType": "ModifierInvocation", "src": "3093:27:46"}], "name": "_allocateBudget", "nameLocation": "3025:15:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9410, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9407, "mutability": "mutable", "name": "package_", "nameLocation": "3057:8:46", "nodeType": "VariableDeclaration", "scope": 9447, "src": "3041:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9406, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9405, "name": "Package", "nameLocations": ["3041:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "3041:7:46"}, "referencedDeclaration": 9939, "src": "3041:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}, {"constant": false, "id": 9409, "mutability": "mutable", "name": "amount_", "nameLocation": "3075:7:46", "nodeType": "VariableDeclaration", "scope": 9447, "src": "3067:15:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9408, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3067:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3040:43:46"}, "returnParameters": {"id": 9414, "nodeType": "ParameterList", "parameters": [], "src": "3121:0:46"}, "scope": 9645, "src": "3016:409:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9462, "nodeType": "Block", "src": "3647:49:46", "statements": [{"expression": {"id": 9460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3657:32:46", "subExpression": {"expression": {"id": 9457, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9451, "src": "3657:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9459, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "3666:21:46", "memberName": "approvedCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9934, "src": "3657:30:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9461, "nodeType": "ExpressionStatement", "src": "3657:32:46"}]}, "documentation": {"id": 9448, "nodeType": "StructuredDocumentation", "src": "3431:118:46", "text": " @notice Increase number of approved Collaborator\n @param package_ reference to Package struct"}, "id": 9463, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9454, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9451, "src": "3637:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}], "id": 9455, "kind": "modifierInvocation", "modifierName": {"id": 9453, "name": "onlyActivePackage", "nameLocations": ["3619:17:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9227, "src": "3619:17:46"}, "nodeType": "ModifierInvocation", "src": "3619:27:46"}], "name": "_approveCollaborator", "nameLocation": "3563:20:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9452, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9451, "mutability": "mutable", "name": "package_", "nameLocation": "3600:8:46", "nodeType": "VariableDeclaration", "scope": 9463, "src": "3584:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9450, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9449, "name": "Package", "nameLocations": ["3584:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "3584:7:46"}, "referencedDeclaration": 9939, "src": "3584:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "src": "3583:26:46"}, "returnParameters": {"id": 9456, "nodeType": "ParameterList", "parameters": [], "src": "3647:0:46"}, "scope": 9645, "src": "3554:142:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9492, "nodeType": "Block", "src": "3963:127:46", "statements": [{"condition": {"id": 9478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3977:9:46", "subExpression": {"id": 9477, "name": "paidMgp_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9469, "src": "3978:8:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9486, "nodeType": "IfStatement", "src": "3973:72:46", "trueBody": {"id": 9485, "nodeType": "Block", "src": "3988:57:46", "statements": [{"expression": {"id": 9483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9479, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9467, "src": "4002:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9481, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "4011:15:46", "memberName": "budgetAllocated", "nodeType": "MemberAccess", "referencedDeclaration": 9910, "src": "4002:24:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"id": 9482, "name": "mgp_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9471, "src": "4030:4:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4002:32:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9484, "nodeType": "ExpressionStatement", "src": "4002:32:46"}]}}, {"expression": {"id": 9490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "--", "prefix": false, "src": "4054:29:46", "subExpression": {"expression": {"id": 9487, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9467, "src": "4054:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9489, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "4063:18:46", "memberName": "totalCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9930, "src": "4054:27:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9491, "nodeType": "ExpressionStatement", "src": "4054:29:46"}]}, "documentation": {"id": 9464, "nodeType": "StructuredDocumentation", "src": "3702:135:46", "text": " @notice Remove collaborator from package\n @param package_ Package want to cancel\n @param mgp_ MGP amount"}, "id": 9493, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9474, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9467, "src": "3953:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}], "id": 9475, "kind": "modifierInvocation", "modifierName": {"id": 9473, "name": "onlyActivePackage", "nameLocations": ["3935:17:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9227, "src": "3935:17:46"}, "nodeType": "ModifierInvocation", "src": "3935:27:46"}], "name": "_removeCollaborator", "nameLocation": "3851:19:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9472, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9467, "mutability": "mutable", "name": "package_", "nameLocation": "3887:8:46", "nodeType": "VariableDeclaration", "scope": 9493, "src": "3871:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9466, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9465, "name": "Package", "nameLocations": ["3871:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "3871:7:46"}, "referencedDeclaration": 9939, "src": "3871:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}, {"constant": false, "id": 9469, "mutability": "mutable", "name": "paidMgp_", "nameLocation": "3902:8:46", "nodeType": "VariableDeclaration", "scope": 9493, "src": "3897:13:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 9468, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3897:4:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 9471, "mutability": "mutable", "name": "mgp_", "nameLocation": "3920:4:46", "nodeType": "VariableDeclaration", "scope": 9493, "src": "3912:12:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9470, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3912:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3870:55:46"}, "returnParameters": {"id": 9476, "nodeType": "ParameterList", "parameters": [], "src": "3963:0:46"}, "scope": 9645, "src": "3842:248:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9557, "nodeType": "Block", "src": "4454:458:46", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9506, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4472:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9507, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4481:18:46", "memberName": "totalCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9930, "src": "4472:27:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"id": 9508, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4503:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9509, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4512:21:46", "memberName": "approvedCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9934, "src": "4503:30:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4472:61:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "756e617070726f76656420636f6c6c61626f7261746f7273206c656674", "id": 9511, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4535:31:46", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ed091be262e797de0fe6bdaedee594092ac508d149b9c65bad4b432d08f6e3b0", "typeString": "literal_string \"unapproved collaborators left\""}, "value": "unapproved collaborators left"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_ed091be262e797de0fe6bdaedee594092ac508d149b9c65bad4b432d08f6e3b0", "typeString": "literal_string \"unapproved collaborators left\""}], "id": 9505, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "4464:7:46", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9512, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4464:103:46", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9513, "nodeType": "ExpressionStatement", "src": "4464:103:46"}, {"expression": {"id": 9520, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 9514, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9503, "src": "4577:11:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9519, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9515, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4591:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9516, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4600:6:46", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 9908, "src": "4591:15:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"expression": {"id": 9517, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4609:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9518, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4618:15:46", "memberName": "budgetAllocated", "nodeType": "MemberAccess", "referencedDeclaration": 9910, "src": "4609:24:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4591:42:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4577:56:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9521, "nodeType": "ExpressionStatement", "src": "4577:56:46"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9525, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9522, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4647:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9523, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4656:14:46", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "4647:23:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 9524, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4674:1:46", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "4647:28:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9531, "nodeType": "IfStatement", "src": "4643:73:46", "trueBody": {"expression": {"id": 9529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 9526, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9503, "src": "4677:11:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"expression": {"id": 9527, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4692:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9528, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4701:15:46", "memberName": "budgetObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9914, "src": "4692:24:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4677:39:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9530, "nodeType": "ExpressionStatement", "src": "4677:39:46"}}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9532, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4730:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9533, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4739:18:46", "memberName": "totalCollaborators", "nodeType": "MemberAccess", "referencedDeclaration": 9930, "src": "4730:27:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 9534, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4761:1:46", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "4730:32:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9541, "nodeType": "IfStatement", "src": "4726:67:46", "trueBody": {"expression": {"id": 9539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"id": 9536, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9503, "src": "4764:11:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"expression": {"id": 9537, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4779:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9538, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4788:5:46", "memberName": "bonus", "nodeType": "MemberAccess", "referencedDeclaration": 9918, "src": "4779:14:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4764:29:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9540, "nodeType": "ExpressionStatement", "src": "4764:29:46"}}, {"expression": {"id": 9547, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9542, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4803:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9544, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "4812:12:46", "memberName": "timeFinished", "nodeType": "MemberAccess", "referencedDeclaration": 9926, "src": "4803:21:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9545, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "4827:5:46", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9546, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4833:9:46", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "4827:15:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "4803:39:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9548, "nodeType": "ExpressionStatement", "src": "4803:39:46"}, {"expression": {"id": 9553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9549, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4852:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9551, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "4861:8:46", "memberName": "isActive", "nodeType": "MemberAccess", "referencedDeclaration": 9938, "src": "4852:17:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"hexValue": "66616c7365", "id": 9552, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4872:5:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "value": "false"}, "src": "4852:25:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9554, "nodeType": "ExpressionStatement", "src": "4852:25:46"}, {"expression": {"id": 9555, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9503, "src": "4894:11:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 9504, "id": 9556, "nodeType": "Return", "src": "4887:18:46"}]}, "documentation": {"id": 9494, "nodeType": "StructuredDocumentation", "src": "4096:236:46", "text": " @notice Finishes package in project, checks if already finished, records time\n if budget left and there is no collaborators, bonus is refunded to package budget\n @param package_ reference to Package struct"}, "id": 9558, "implemented": true, "kind": "function", "modifiers": [{"arguments": [{"id": 9500, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9497, "src": "4414:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}], "id": 9501, "kind": "modifierInvocation", "modifierName": {"id": 9499, "name": "onlyActivePackage", "nameLocations": ["4396:17:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9227, "src": "4396:17:46"}, "nodeType": "ModifierInvocation", "src": "4396:27:46"}], "name": "_finishPackage", "nameLocation": "4346:14:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9498, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9497, "mutability": "mutable", "name": "package_", "nameLocation": "4377:8:46", "nodeType": "VariableDeclaration", "scope": 9558, "src": "4361:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9496, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9495, "name": "Package", "nameLocations": ["4361:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "4361:7:46"}, "referencedDeclaration": 9939, "src": "4361:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "src": "4360:26:46"}, "returnParameters": {"id": 9504, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9503, "mutability": "mutable", "name": "budgetLeft_", "nameLocation": "4441:11:46", "nodeType": "VariableDeclaration", "scope": 9558, "src": "4433:19:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9502, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4433:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4432:21:46"}, "scope": 9645, "src": "4337:575:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9593, "nodeType": "Block", "src": "5127:287:46", "statements": [{"assignments": [9568], "declarations": [{"constant": false, "id": 9568, "mutability": "mutable", "name": "remains", "nameLocation": "5145:7:46", "nodeType": "VariableDeclaration", "scope": 9593, "src": "5137:15:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9567, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5137:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 9574, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9569, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9562, "src": "5155:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9570, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5164:15:46", "memberName": "budgetObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9914, "src": "5155:24:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"expression": {"id": 9571, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9562, "src": "5182:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9572, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5191:19:46", "memberName": "budgetObserversPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9916, "src": "5182:28:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5155:55:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "5137:73:46"}, {"assignments": [9576], "declarations": [{"constant": false, "id": 9576, "mutability": "mutable", "name": "portion", "nameLocation": "5287:7:46", "nodeType": "VariableDeclaration", "scope": 9593, "src": "5279:15:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9575, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5279:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 9582, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9577, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9562, "src": "5297:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9578, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5306:15:46", "memberName": "budgetObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9914, "src": "5297:24:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": {"expression": {"id": 9579, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9562, "src": "5324:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9580, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "5333:14:46", "memberName": "totalObservers", "nodeType": "MemberAccess", "referencedDeclaration": 9928, "src": "5324:23:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5297:50:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "5279:68:46"}, {"expression": {"condition": {"components": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 9583, "name": "remains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9568, "src": "5365:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"hexValue": "32", "id": 9584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5375:1:46", "typeDescriptions": {"typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2"}, "value": "2"}, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": {"id": 9585, "name": "portion", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9576, "src": "5379:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5375:11:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5365:21:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "id": 9588, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5364:23:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "falseExpression": {"id": 9590, "name": "portion", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9576, "src": "5400:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "5364:43:46", "trueExpression": {"id": 9589, "name": "remains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9568, "src": "5390:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 9566, "id": 9592, "nodeType": "Return", "src": "5357:50:46"}]}, "documentation": {"id": 9559, "nodeType": "StructuredDocumentation", "src": "4918:121:46", "text": " @notice Get observer's claimable portion in package\n @param package_ reference to Package struct"}, "id": 9594, "implemented": true, "kind": "function", "modifiers": [], "name": "_getObserverFee", "nameLocation": "5053:15:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9563, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9562, "mutability": "mutable", "name": "package_", "nameLocation": "5085:8:46", "nodeType": "VariableDeclaration", "scope": 9594, "src": "5069:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9561, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9560, "name": "Package", "nameLocations": ["5069:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "5069:7:46"}, "referencedDeclaration": 9939, "src": "5069:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}], "src": "5068:26:46"}, "returnParameters": {"id": 9566, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9565, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 9594, "src": "5118:7:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9564, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5118:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5117:9:46"}, "scope": 9645, "src": "5044:370:46", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 9609, "nodeType": "Block", "src": "5621:56:46", "statements": [{"expression": {"id": 9607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9603, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9598, "src": "5631:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9605, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "5640:19:46", "memberName": "budgetObserversPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9916, "src": "5631:28:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 9606, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9600, "src": "5663:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5631:39:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9608, "nodeType": "ExpressionStatement", "src": "5631:39:46"}]}, "documentation": {"id": 9595, "nodeType": "StructuredDocumentation", "src": "5420:119:46", "text": " @notice Increases package's observers budget paid\n @param package_ reference to Package struct"}, "id": 9610, "implemented": true, "kind": "function", "modifiers": [], "name": "_payObserverFee", "nameLocation": "5553:15:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9601, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9598, "mutability": "mutable", "name": "package_", "nameLocation": "5585:8:46", "nodeType": "VariableDeclaration", "scope": 9610, "src": "5569:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9597, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9596, "name": "Package", "nameLocations": ["5569:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "5569:7:46"}, "referencedDeclaration": 9939, "src": "5569:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}, {"constant": false, "id": 9600, "mutability": "mutable", "name": "amount_", "nameLocation": "5603:7:46", "nodeType": "VariableDeclaration", "scope": 9610, "src": "5595:15:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9599, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5595:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5568:43:46"}, "returnParameters": {"id": 9602, "nodeType": "ParameterList", "parameters": [], "src": "5621:0:46"}, "scope": 9645, "src": "5544:133:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9643, "nodeType": "Block", "src": "5966:169:46", "statements": [{"expression": {"id": 9625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9621, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9614, "src": "5976:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9623, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "5985:10:46", "memberName": "budgetPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9912, "src": "5976:19:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 9624, "name": "mgp_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9616, "src": "5999:4:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "5976:27:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9626, "nodeType": "ExpressionStatement", "src": "5976:27:46"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 9627, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9618, "src": "6017:6:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 9628, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6026:1:46", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "6017:10:46", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9642, "nodeType": "IfStatement", "src": "6013:116:46", "trueBody": {"id": 9641, "nodeType": "Block", "src": "6029:100:46", "statements": [{"expression": {"id": 9634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9630, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9614, "src": "6043:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9632, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "6052:9:46", "memberName": "bonusPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9920, "src": "6043:18:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 9633, "name": "bonus_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9618, "src": "6065:6:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "6043:28:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9635, "nodeType": "ExpressionStatement", "src": "6043:28:46"}, {"expression": {"id": 9639, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "6085:33:46", "subExpression": {"expression": {"id": 9636, "name": "package_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9614, "src": "6085:8:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package storage pointer"}}, "id": 9638, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "6094:22:46", "memberName": "collaboratorsPaidBonus", "nodeType": "MemberAccess", "referencedDeclaration": 9922, "src": "6085:31:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9640, "nodeType": "ExpressionStatement", "src": "6085:33:46"}]}}]}, "documentation": {"id": 9611, "nodeType": "StructuredDocumentation", "src": "5684:162:46", "text": " @notice Pay Reward to budget\n @param package_ reference to Package struct\n @param mgp_ MGP amount\n @param bonus_ Bonus amount"}, "id": 9644, "implemented": true, "kind": "function", "modifiers": [], "name": "_payReward", "nameLocation": "5860:10:46", "nodeType": "FunctionDefinition", "parameters": {"id": 9619, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9614, "mutability": "mutable", "name": "package_", "nameLocation": "5896:8:46", "nodeType": "VariableDeclaration", "scope": 9644, "src": "5880:24:46", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}, "typeName": {"id": 9613, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9612, "name": "Package", "nameLocations": ["5880:7:46"], "nodeType": "IdentifierPath", "referencedDeclaration": 9939, "src": "5880:7:46"}, "referencedDeclaration": 9939, "src": "5880:7:46", "typeDescriptions": {"typeIdentifier": "t_struct$_Package_$9939_storage_ptr", "typeString": "struct Package"}}, "visibility": "internal"}, {"constant": false, "id": 9616, "mutability": "mutable", "name": "mgp_", "nameLocation": "5922:4:46", "nodeType": "VariableDeclaration", "scope": 9644, "src": "5914:12:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9615, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5914:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9618, "mutability": "mutable", "name": "bonus_", "nameLocation": "5944:6:46", "nodeType": "VariableDeclaration", "scope": 9644, "src": "5936:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9617, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5936:7:46", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5870:86:46"}, "returnParameters": {"id": 9620, "nodeType": "ParameterList", "parameters": [], "src": "5966:0:46"}, "scope": 9645, "src": "5851:284:46", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}], "scope": 9646, "src": "98:6039:46", "usedErrors": []}], "src": "32:6106:46"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/ProjectLibrary.sol": {"AST": {"absolutePath": "contracts/libraries/ProjectLibrary.sol", "exportedSymbols": {"IERC20Upgradeable": [419], "ITokenFactory": [8959], "Project": [9906], "ProjectLibrary": [9885], "SafeERC20Upgradeable": [736]}, "id": 9886, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 9647, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:47"}, {"absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", "file": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", "id": 9650, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 9886, "sourceUnit": 737, "src": "56:137:47", "symbolAliases": [{"foreign": {"id": 9648, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "65:17:47", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}, {"foreign": {"id": 9649, "name": "SafeERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 736, "src": "84:20:47", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/interfaces/ITokenFactory.sol", "file": "../interfaces/ITokenFactory.sol", "id": 9652, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 9886, "sourceUnit": 8960, "src": "194:64:47", "symbolAliases": [{"foreign": {"id": 9651, "name": "ITokenFactory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8959, "src": "203:13:47", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"absolutePath": "contracts/libraries/Structs.sol", "file": "./Structs.sol", "id": 9654, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 9886, "sourceUnit": 9962, "src": "259:40:47", "symbolAliases": [{"foreign": {"id": 9653, "name": "Project", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9906, "src": "268:7:47", "typeDescriptions": {}}, "nameLocation": "-1:-1:-1"}], "unitAlias": ""}, {"abstract": false, "baseContracts": [], "canonicalName": "ProjectLibrary", "contractDependencies": [], "contractKind": "library", "fullyImplemented": true, "id": 9885, "linearizedBaseContracts": [9885], "name": "ProjectLibrary", "nameLocation": "309:14:47", "nodeType": "ContractDefinition", "nodes": [{"global": false, "id": 9658, "libraryName": {"id": 9655, "name": "SafeERC20Upgradeable", "nameLocations": ["336:20:47"], "nodeType": "IdentifierPath", "referencedDeclaration": 736, "src": "336:20:47"}, "nodeType": "UsingForDirective", "src": "330:49:47", "typeName": {"id": 9657, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9656, "name": "IERC20Upgradeable", "nameLocations": ["361:17:47"], "nodeType": "IdentifierPath", "referencedDeclaration": 419, "src": "361:17:47"}, "referencedDeclaration": 419, "src": "361:17:47", "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}}, {"body": {"id": 9710, "nodeType": "Block", "src": "692:269:47", "statements": [{"expression": {"id": 9674, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9669, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9662, "src": "702:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9671, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "711:9:47", "memberName": "initiator", "nodeType": "MemberAccess", "referencedDeclaration": 9889, "src": "702:18:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9672, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "723:3:47", "typeDescriptions": {"typeIdentifier": "t_magic_message", "typeString": "msg"}}, "id": 9673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "727:6:47", "memberName": "sender", "nodeType": "MemberAccess", "src": "723:10:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "702:31:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 9675, "nodeType": "ExpressionStatement", "src": "702:31:47"}, {"expression": {"id": 9680, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9676, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9662, "src": "743:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9678, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "752:5:47", "memberName": "token", "nodeType": "MemberAccess", "referencedDeclaration": 9891, "src": "743:14:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 9679, "name": "token_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9664, "src": "760:6:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "src": "743:23:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 9681, "nodeType": "ExpressionStatement", "src": "743:23:47"}, {"expression": {"id": 9686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9682, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9662, "src": "776:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9684, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "785:6:47", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 9893, "src": "776:15:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"id": 9685, "name": "budget_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9666, "src": "794:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "776:25:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9687, "nodeType": "ExpressionStatement", "src": "776:25:47"}, {"expression": {"id": 9693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9688, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9662, "src": "811:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9690, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "820:11:47", "memberName": "timeCreated", "nodeType": "MemberAccess", "referencedDeclaration": 9899, "src": "811:20:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9691, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "834:5:47", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "840:9:47", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "834:15:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "811:38:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9694, "nodeType": "ExpressionStatement", "src": "811:38:47"}, {"expression": {"arguments": [{"expression": {"id": 9700, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "911:3:47", "typeDescriptions": {"typeIdentifier": "t_magic_message", "typeString": "msg"}}, "id": 9701, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "915:6:47", "memberName": "sender", "nodeType": "MemberAccess", "src": "911:10:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"arguments": [{"id": 9704, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "931:4:47", "typeDescriptions": {"typeIdentifier": "t_contract$_ProjectLibrary_$9885", "typeString": "library ProjectLibrary"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_contract$_ProjectLibrary_$9885", "typeString": "library ProjectLibrary"}], "id": 9703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "923:7:47", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 9702, "name": "address", "nodeType": "ElementaryTypeName", "src": "923:7:47", "typeDescriptions": {}}}, "id": 9705, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "923:13:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"expression": {"id": 9706, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9662, "src": "938:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9707, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "947:6:47", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 9893, "src": "938:15:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"expression": {"id": 9696, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9662, "src": "878:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9697, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "887:5:47", "memberName": "token", "nodeType": "MemberAccess", "referencedDeclaration": 9891, "src": "878:14:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 9695, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "860:17:47", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "type(contract IERC20Upgradeable)"}}, "id": 9698, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "860:33:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 9699, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "894:16:47", "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 513, "src": "860:50:47", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "function (contract IERC20Upgradeable,address,address,uint256)"}}, "id": 9708, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "860:94:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9709, "nodeType": "ExpressionStatement", "src": "860:94:47"}]}, "documentation": {"id": 9659, "nodeType": "StructuredDocumentation", "src": "385:180:47", "text": " @notice Creates project proposal\n @param project_ reference to Project struct\n @param token_ project token address\n @param budget_ total budget"}, "id": 9711, "implemented": true, "kind": "function", "modifiers": [], "name": "_createProject", "nameLocation": "579:14:47", "nodeType": "FunctionDefinition", "parameters": {"id": 9667, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9662, "mutability": "mutable", "name": "project_", "nameLocation": "619:8:47", "nodeType": "VariableDeclaration", "scope": 9711, "src": "603:24:47", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}, "typeName": {"id": 9661, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9660, "name": "Project", "nameLocations": ["603:7:47"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "603:7:47"}, "referencedDeclaration": 9906, "src": "603:7:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}, "visibility": "internal"}, {"constant": false, "id": 9664, "mutability": "mutable", "name": "token_", "nameLocation": "645:6:47", "nodeType": "VariableDeclaration", "scope": 9711, "src": "637:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 9663, "name": "address", "nodeType": "ElementaryTypeName", "src": "637:7:47", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 9666, "mutability": "mutable", "name": "budget_", "nameLocation": "669:7:47", "nodeType": "VariableDeclaration", "scope": 9711, "src": "661:15:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9665, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "661:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "593:89:47"}, "returnParameters": {"id": 9668, "nodeType": "ParameterList", "parameters": [], "src": "692:0:47"}, "scope": 9885, "src": "570:391:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9769, "nodeType": "Block", "src": "1279:468:47", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9724, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9721, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9715, "src": "1297:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9722, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1306:12:47", "memberName": "timeFinished", "nodeType": "MemberAccess", "referencedDeclaration": 9901, "src": "1297:21:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 9723, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1322:1:47", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1297:26:47", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "616c72656164792066696e69736865642070726f6a656374", "id": 9725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1325:26:47", "typeDescriptions": {"typeIdentifier": "t_stringliteral_75be95256ae9d12ef5f898e9d7285d9a17d26198f78f1ee826d569b0e7121197", "typeString": "literal_string \"already finished project\""}, "value": "already finished project"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_75be95256ae9d12ef5f898e9d7285d9a17d26198f78f1ee826d569b0e7121197", "typeString": "literal_string \"already finished project\""}], "id": 9720, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1289:7:47", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9726, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1289:63:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9727, "nodeType": "ExpressionStatement", "src": "1289:63:47"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9729, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9715, "src": "1370:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9730, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1379:13:47", "memberName": "totalPackages", "nodeType": "MemberAccess", "referencedDeclaration": 9903, "src": "1370:22:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"expression": {"id": 9731, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9715, "src": "1396:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9732, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1405:21:47", "memberName": "totalFinishedPackages", "nodeType": "MemberAccess", "referencedDeclaration": 9905, "src": "1396:30:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1370:56:47", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "756e66696e6973686564207061636b61676573206c656674", "id": 9734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1428:26:47", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2d138ed1bec770596f06c52e2b2a29827ecd39d9b15f403da40d441285c879d3", "typeString": "literal_string \"unfinished packages left\""}, "value": "unfinished packages left"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_2d138ed1bec770596f06c52e2b2a29827ecd39d9b15f403da40d441285c879d3", "typeString": "literal_string \"unfinished packages left\""}], "id": 9728, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "1362:7:47", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9735, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1362:93:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9736, "nodeType": "ExpressionStatement", "src": "1362:93:47"}, {"expression": {"id": 9742, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9737, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9715, "src": "1465:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9739, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "1474:12:47", "memberName": "timeFinished", "nodeType": "MemberAccess", "referencedDeclaration": 9901, "src": "1465:21:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "=", "rightHandSide": {"expression": {"id": 9740, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1489:5:47", "typeDescriptions": {"typeIdentifier": "t_magic_block", "typeString": "block"}}, "id": 9741, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1495:9:47", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "1489:15:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1465:39:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9743, "nodeType": "ExpressionStatement", "src": "1465:39:47"}, {"assignments": [9745], "declarations": [{"constant": false, "id": 9745, "mutability": "mutable", "name": "budgetLeft_", "nameLocation": "1522:11:47", "nodeType": "VariableDeclaration", "scope": 9769, "src": "1514:19:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9744, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1514:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 9751, "initialValue": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9746, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9715, "src": "1536:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9747, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1545:6:47", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 9893, "src": "1536:15:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": {"expression": {"id": 9748, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9715, "src": "1554:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9749, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1563:15:47", "memberName": "budgetAllocated", "nodeType": "MemberAccess", "referencedDeclaration": 9895, "src": "1554:24:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "1536:42:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "1514:64:47"}, {"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9754, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 9752, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9745, "src": "1592:11:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 9753, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1606:1:47", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "1592:15:47", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9766, "nodeType": "IfStatement", "src": "1588:125:47", "trueBody": {"id": 9765, "nodeType": "Block", "src": "1609:104:47", "statements": [{"expression": {"arguments": [{"expression": {"id": 9760, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9715, "src": "1670:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9761, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1679:9:47", "memberName": "initiator", "nodeType": "MemberAccess", "referencedDeclaration": 9889, "src": "1670:18:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 9762, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9745, "src": "1690:11:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"expression": {"id": 9756, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9715, "src": "1641:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9757, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "1650:5:47", "memberName": "token", "nodeType": "MemberAccess", "referencedDeclaration": 9891, "src": "1641:14:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 9755, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "1623:17:47", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "type(contract IERC20Upgradeable)"}}, "id": 9758, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1623:33:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 9759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1657:12:47", "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 487, "src": "1623:46:47", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "function (contract IERC20Upgradeable,address,uint256)"}}, "id": 9763, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1623:79:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9764, "nodeType": "ExpressionStatement", "src": "1623:79:47"}]}}, {"expression": {"id": 9767, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9745, "src": "1729:11:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 9719, "id": 9768, "nodeType": "Return", "src": "1722:18:47"}]}, "documentation": {"id": 9712, "nodeType": "StructuredDocumentation", "src": "967:230:47", "text": " @notice Finishes project, checks if already finished or unfinished packages left\n unallocated budget returned to initiator or burned (in case of IOUToken)\n @param project_ reference to Project struct"}, "id": 9770, "implemented": true, "kind": "function", "modifiers": [], "name": "_finishProject", "nameLocation": "1211:14:47", "nodeType": "FunctionDefinition", "parameters": {"id": 9716, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9715, "mutability": "mutable", "name": "project_", "nameLocation": "1242:8:47", "nodeType": "VariableDeclaration", "scope": 9770, "src": "1226:24:47", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}, "typeName": {"id": 9714, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9713, "name": "Project", "nameLocations": ["1226:7:47"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "1226:7:47"}, "referencedDeclaration": 9906, "src": "1226:7:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}, "visibility": "internal"}], "src": "1225:26:47"}, "returnParameters": {"id": 9719, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9718, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 9770, "src": "1270:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9717, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1270:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1269:9:47"}, "scope": 9885, "src": "1202:545:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9810, "nodeType": "Block", "src": "2123:273:47", "statements": [{"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9783, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9780, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9774, "src": "2141:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9781, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "2150:12:47", "memberName": "timeFinished", "nodeType": "MemberAccess", "referencedDeclaration": 9901, "src": "2141:21:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": {"hexValue": "30", "id": 9782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2166:1:47", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "2141:26:47", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "70726f6a6563742069732066696e6973686564", "id": 9784, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2169:21:47", "typeDescriptions": {"typeIdentifier": "t_stringliteral_afa84a33b9649370a026fa9aa5c169a9392b72dfcc578ed5a0081cf930e5a0b5", "typeString": "literal_string \"project is finished\""}, "value": "project is finished"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_afa84a33b9649370a026fa9aa5c169a9392b72dfcc578ed5a0081cf930e5a0b5", "typeString": "literal_string \"project is finished\""}], "id": 9779, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2133:7:47", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9785, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2133:58:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9786, "nodeType": "ExpressionStatement", "src": "2133:58:47"}, {"expression": {"arguments": [{"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9788, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9774, "src": "2209:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9789, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "2218:6:47", "memberName": "budget", "nodeType": "MemberAccess", "referencedDeclaration": 9893, "src": "2209:15:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9793, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"expression": {"id": 9790, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9774, "src": "2228:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9791, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "2237:15:47", "memberName": "budgetAllocated", "nodeType": "MemberAccess", "referencedDeclaration": 9895, "src": "2228:24:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": {"id": 9792, "name": "totalBudget_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9776, "src": "2255:12:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2228:39:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2209:58:47", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"hexValue": "6e6f7420656e6f7567682070726f6a65637420627564676574206c656674", "id": 9795, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2269:32:47", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d27e1e41eed816741d364ef7be75687b959b087b5aa4a7916c90f68081f88ce2", "typeString": "literal_string \"not enough project budget left\""}, "value": "not enough project budget left"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_stringliteral_d27e1e41eed816741d364ef7be75687b959b087b5aa4a7916c90f68081f88ce2", "typeString": "literal_string \"not enough project budget left\""}], "id": 9787, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2201:7:47", "typeDescriptions": {"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure"}}, "id": 9796, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2201:101:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9797, "nodeType": "ExpressionStatement", "src": "2201:101:47"}, {"expression": {"id": 9802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9798, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9774, "src": "2312:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9800, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2321:15:47", "memberName": "budgetAllocated", "nodeType": "MemberAccess", "referencedDeclaration": 9895, "src": "2312:24:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 9801, "name": "totalBudget_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9776, "src": "2340:12:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2312:40:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9803, "nodeType": "ExpressionStatement", "src": "2312:40:47"}, {"expression": {"id": 9808, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9804, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9774, "src": "2362:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9806, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2371:13:47", "memberName": "totalPackages", "nodeType": "MemberAccess", "referencedDeclaration": 9903, "src": "2362:22:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"hexValue": "31", "id": 9807, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2388:1:47", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, "src": "2362:27:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9809, "nodeType": "ExpressionStatement", "src": "2362:27:47"}]}, "documentation": {"id": 9771, "nodeType": "StructuredDocumentation", "src": "1753:254:47", "text": " @notice Creates package in project, check if there is budget available\n allocates budget and increase total number of packages\n @param project_ reference to Project struct\n @param totalBudget_ total budget MGP + Bonus"}, "id": 9811, "implemented": true, "kind": "function", "modifiers": [], "name": "_reservePackagesBudget", "nameLocation": "2021:22:47", "nodeType": "FunctionDefinition", "parameters": {"id": 9777, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9774, "mutability": "mutable", "name": "project_", "nameLocation": "2069:8:47", "nodeType": "VariableDeclaration", "scope": 9811, "src": "2053:24:47", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}, "typeName": {"id": 9773, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9772, "name": "Project", "nameLocations": ["2053:7:47"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "2053:7:47"}, "referencedDeclaration": 9906, "src": "2053:7:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}, "visibility": "internal"}, {"constant": false, "id": 9776, "mutability": "mutable", "name": "totalBudget_", "nameLocation": "2095:12:47", "nodeType": "VariableDeclaration", "scope": 9811, "src": "2087:20:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9775, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2087:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2043:70:47"}, "returnParameters": {"id": 9778, "nodeType": "ParameterList", "parameters": [], "src": "2123:0:47"}, "scope": 9885, "src": "2012:384:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9831, "nodeType": "Block", "src": "2671:98:47", "statements": [{"expression": {"id": 9824, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9820, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9815, "src": "2681:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9822, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2690:15:47", "memberName": "budgetAllocated", "nodeType": "MemberAccess", "referencedDeclaration": 9895, "src": "2681:24:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"id": 9823, "name": "budgetToBeReverted_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9817, "src": "2709:19:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "2681:47:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9825, "nodeType": "ExpressionStatement", "src": "2681:47:47"}, {"expression": {"id": 9829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "--", "prefix": false, "src": "2738:24:47", "subExpression": {"expression": {"id": 9826, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9815, "src": "2738:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9828, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2747:13:47", "memberName": "totalPackages", "nodeType": "MemberAccess", "referencedDeclaration": 9903, "src": "2738:22:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9830, "nodeType": "ExpressionStatement", "src": "2738:24:47"}]}, "documentation": {"id": 9812, "nodeType": "StructuredDocumentation", "src": "2402:170:47", "text": " @notice Get back package budget package\n @param project_ Project reference address\n @param budgetToBeReverted_ Budget amount to be reverted"}, "id": 9832, "implemented": true, "kind": "function", "modifiers": [], "name": "_revertPackageBudget", "nameLocation": "2586:20:47", "nodeType": "FunctionDefinition", "parameters": {"id": 9818, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9815, "mutability": "mutable", "name": "project_", "nameLocation": "2623:8:47", "nodeType": "VariableDeclaration", "scope": 9832, "src": "2607:24:47", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}, "typeName": {"id": 9814, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9813, "name": "Project", "nameLocations": ["2607:7:47"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "2607:7:47"}, "referencedDeclaration": 9906, "src": "2607:7:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}, "visibility": "internal"}, {"constant": false, "id": 9817, "mutability": "mutable", "name": "budgetToBeReverted_", "nameLocation": "2641:19:47", "nodeType": "VariableDeclaration", "scope": 9832, "src": "2633:27:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9816, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2633:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2606:55:47"}, "returnParameters": {"id": 9819, "nodeType": "ParameterList", "parameters": [], "src": "2671:0:47"}, "scope": 9885, "src": "2577:192:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9856, "nodeType": "Block", "src": "3116:119:47", "statements": [{"condition": {"commonType": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "id": 9843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {"id": 9841, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9838, "src": "3130:11:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": {"hexValue": "30", "id": 9842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3144:1:47", "typeDescriptions": {"typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0"}, "value": "0"}, "src": "3130:15:47", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "id": 9850, "nodeType": "IfStatement", "src": "3126:60:47", "trueBody": {"expression": {"id": 9848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9844, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9836, "src": "3147:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9846, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "3156:15:47", "memberName": "budgetAllocated", "nodeType": "MemberAccess", "referencedDeclaration": 9895, "src": "3147:24:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "-=", "rightHandSide": {"id": 9847, "name": "budgetLeft_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9838, "src": "3175:11:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3147:39:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9849, "nodeType": "ExpressionStatement", "src": "3147:39:47"}}, {"expression": {"id": 9854, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3196:32:47", "subExpression": {"expression": {"id": 9851, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9836, "src": "3196:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9853, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "3205:21:47", "memberName": "totalFinishedPackages", "nodeType": "MemberAccess", "referencedDeclaration": 9905, "src": "3196:30:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9855, "nodeType": "ExpressionStatement", "src": "3196:32:47"}]}, "documentation": {"id": 9833, "nodeType": "StructuredDocumentation", "src": "2775:256:47", "text": " @notice Finishes package in project, budget left addded refunded back to project budget\n increases total number of finished packages\n @param project_ reference to Project struct\n @param budgetLeft_ amount of budget left"}, "id": 9857, "implemented": true, "kind": "function", "modifiers": [], "name": "_finishPackage", "nameLocation": "3045:14:47", "nodeType": "FunctionDefinition", "parameters": {"id": 9839, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9836, "mutability": "mutable", "name": "project_", "nameLocation": "3076:8:47", "nodeType": "VariableDeclaration", "scope": 9857, "src": "3060:24:47", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}, "typeName": {"id": 9835, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9834, "name": "Project", "nameLocations": ["3060:7:47"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "3060:7:47"}, "referencedDeclaration": 9906, "src": "3060:7:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}, "visibility": "internal"}, {"constant": false, "id": 9838, "mutability": "mutable", "name": "budgetLeft_", "nameLocation": "3094:11:47", "nodeType": "VariableDeclaration", "scope": 9857, "src": "3086:19:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9837, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3086:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3059:47:47"}, "returnParameters": {"id": 9840, "nodeType": "ParameterList", "parameters": [], "src": "3116:0:47"}, "scope": 9885, "src": "3036:199:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"body": {"id": 9883, "nodeType": "Block", "src": "3524:123:47", "statements": [{"expression": {"id": 9872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": {"expression": {"id": 9868, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9861, "src": "3534:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9870, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "3543:10:47", "memberName": "budgetPaid", "nodeType": "MemberAccess", "referencedDeclaration": 9897, "src": "3534:19:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "Assignment", "operator": "+=", "rightHandSide": {"id": 9871, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9865, "src": "3557:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "src": "3534:30:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 9873, "nodeType": "ExpressionStatement", "src": "3534:30:47"}, {"expression": {"arguments": [{"id": 9879, "name": "receiver_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9863, "src": "3621:9:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 9880, "name": "amount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9865, "src": "3632:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"arguments": [{"expression": {"id": 9875, "name": "project_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9861, "src": "3592:8:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project storage pointer"}}, "id": 9876, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3601:5:47", "memberName": "token", "nodeType": "MemberAccess", "referencedDeclaration": 9891, "src": "3592:14:47", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 9874, "name": "IERC20Upgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 419, "src": "3574:17:47", "typeDescriptions": {"typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "type(contract IERC20Upgradeable)"}}, "id": 9877, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3574:33:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_contract$_IERC20Upgradeable_$419", "typeString": "contract IERC20Upgradeable"}}, "id": 9878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3608:12:47", "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 487, "src": "3574:46:47", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$419_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$419_$", "typeString": "function (contract IERC20Upgradeable,address,uint256)"}}, "id": 9881, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3574:66:47", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9882, "nodeType": "ExpressionStatement", "src": "3574:66:47"}]}, "documentation": {"id": 9858, "nodeType": "StructuredDocumentation", "src": "3241:163:47", "text": " @notice Pays from project's budget, increases budget paid\n @param project_ reference to Project struct\n @param amount_ amount to pay"}, "id": 9884, "implemented": true, "kind": "function", "modifiers": [], "name": "_pay", "nameLocation": "3418:4:47", "nodeType": "FunctionDefinition", "parameters": {"id": 9866, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9861, "mutability": "mutable", "name": "project_", "nameLocation": "3448:8:47", "nodeType": "VariableDeclaration", "scope": 9884, "src": "3432:24:47", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}, "typeName": {"id": 9860, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 9859, "name": "Project", "nameLocations": ["3432:7:47"], "nodeType": "IdentifierPath", "referencedDeclaration": 9906, "src": "3432:7:47"}, "referencedDeclaration": 9906, "src": "3432:7:47", "typeDescriptions": {"typeIdentifier": "t_struct$_Project_$9906_storage_ptr", "typeString": "struct Project"}}, "visibility": "internal"}, {"constant": false, "id": 9863, "mutability": "mutable", "name": "receiver_", "nameLocation": "3474:9:47", "nodeType": "VariableDeclaration", "scope": 9884, "src": "3466:17:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 9862, "name": "address", "nodeType": "ElementaryTypeName", "src": "3466:7:47", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 9865, "mutability": "mutable", "name": "amount_", "nameLocation": "3501:7:47", "nodeType": "VariableDeclaration", "scope": 9884, "src": "3493:15:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9864, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3493:7:47", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3422:92:47"}, "returnParameters": {"id": 9867, "nodeType": "ParameterList", "parameters": [], "src": "3524:0:47"}, "scope": 9885, "src": "3409:238:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}], "scope": 9886, "src": "301:3348:47", "usedErrors": []}], "src": "32:3618:47"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/Structs.sol": {"AST": {"absolutePath": "contracts/libraries/Structs.sol", "exportedSymbols": {"Collaborator": [9954], "Observer": [9961], "Package": [9939], "Project": [9906]}, "id": 9962, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 9887, "literals": ["solidity", "0.8", ".16"], "nodeType": "PragmaDirective", "src": "32:23:48"}, {"canonicalName": "Project", "id": 9906, "members": [{"constant": false, "id": 9889, "mutability": "mutable", "name": "initiator", "nameLocation": "86:9:48", "nodeType": "VariableDeclaration", "scope": 9906, "src": "78:17:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 9888, "name": "address", "nodeType": "ElementaryTypeName", "src": "78:7:48", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 9891, "mutability": "mutable", "name": "token", "nameLocation": "109:5:48", "nodeType": "VariableDeclaration", "scope": 9906, "src": "101:13:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 9890, "name": "address", "nodeType": "ElementaryTypeName", "src": "101:7:48", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 9893, "mutability": "mutable", "name": "budget", "nameLocation": "128:6:48", "nodeType": "VariableDeclaration", "scope": 9906, "src": "120:14:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9892, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "120:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9895, "mutability": "mutable", "name": "budgetAllocated", "nameLocation": "148:15:48", "nodeType": "VariableDeclaration", "scope": 9906, "src": "140:23:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9894, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "140:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9897, "mutability": "mutable", "name": "budgetPaid", "nameLocation": "177:10:48", "nodeType": "VariableDeclaration", "scope": 9906, "src": "169:18:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9896, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "169:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9899, "mutability": "mutable", "name": "timeCreated", "nameLocation": "201:11:48", "nodeType": "VariableDeclaration", "scope": 9906, "src": "193:19:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9898, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "193:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9901, "mutability": "mutable", "name": "timeFinished", "nameLocation": "226:12:48", "nodeType": "VariableDeclaration", "scope": 9906, "src": "218:20:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9900, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "218:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9903, "mutability": "mutable", "name": "totalPackages", "nameLocation": "252:13:48", "nodeType": "VariableDeclaration", "scope": 9906, "src": "244:21:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9902, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "244:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9905, "mutability": "mutable", "name": "totalFinishedPackages", "nameLocation": "279:21:48", "nodeType": "VariableDeclaration", "scope": 9906, "src": "271:29:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9904, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "271:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "name": "Project", "nameLocation": "64:7:48", "nodeType": "StructDefinition", "scope": 9962, "src": "57:246:48", "visibility": "public"}, {"canonicalName": "Package", "id": 9939, "members": [{"constant": false, "id": 9908, "mutability": "mutable", "name": "budget", "nameLocation": "334:6:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "326:14:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9907, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "326:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9910, "mutability": "mutable", "name": "budgetAllocated", "nameLocation": "354:15:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "346:23:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9909, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "346:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9912, "mutability": "mutable", "name": "budgetPaid", "nameLocation": "383:10:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "375:18:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9911, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "375:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9914, "mutability": "mutable", "name": "budgetObservers", "nameLocation": "407:15:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "399:23:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9913, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "399:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9916, "mutability": "mutable", "name": "budgetObserversPaid", "nameLocation": "436:19:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "428:27:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9915, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "428:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9918, "mutability": "mutable", "name": "bonus", "nameLocation": "469:5:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "461:13:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9917, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "461:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9920, "mutability": "mutable", "name": "bonusPaid", "nameLocation": "488:9:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "480:17:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9919, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "480:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9922, "mutability": "mutable", "name": "collaboratorsPaidBonus", "nameLocation": "511:22:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "503:30:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9921, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "503:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9924, "mutability": "mutable", "name": "timeCreated", "nameLocation": "547:11:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "539:19:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "539:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9926, "mutability": "mutable", "name": "timeFinished", "nameLocation": "572:12:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "564:20:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9925, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "564:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9928, "mutability": "mutable", "name": "totalObservers", "nameLocation": "598:14:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "590:22:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9927, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "590:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9930, "mutability": "mutable", "name": "totalCollaborators", "nameLocation": "626:18:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "618:26:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9929, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "618:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9932, "mutability": "mutable", "name": "collaboratorsLimit", "nameLocation": "658:18:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "650:26:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9931, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "650:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9934, "mutability": "mutable", "name": "approvedCollaborators", "nameLocation": "690:21:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "682:29:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9933, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "682:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9936, "mutability": "mutable", "name": "timeCanceled", "nameLocation": "725:12:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "717:20:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9935, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "717:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9938, "mutability": "mutable", "name": "isActive", "nameLocation": "748:8:48", "nodeType": "VariableDeclaration", "scope": 9939, "src": "743:13:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 9937, "name": "bool", "nodeType": "ElementaryTypeName", "src": "743:4:48", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "name": "Package", "nameLocation": "312:7:48", "nodeType": "StructDefinition", "scope": 9962, "src": "305:454:48", "visibility": "public"}, {"canonicalName": "Collaborator", "id": 9954, "members": [{"constant": false, "id": 9941, "mutability": "mutable", "name": "mgp", "nameLocation": "795:3:48", "nodeType": "VariableDeclaration", "scope": 9954, "src": "787:11:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9940, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "787:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9943, "mutability": "mutable", "name": "bonus", "nameLocation": "812:5:48", "nodeType": "VariableDeclaration", "scope": 9954, "src": "804:13:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9942, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "804:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9945, "mutability": "mutable", "name": "timeCreated", "nameLocation": "831:11:48", "nodeType": "VariableDeclaration", "scope": 9954, "src": "823:19:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9944, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "823:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9947, "mutability": "mutable", "name": "timeMgpApproved", "nameLocation": "856:15:48", "nodeType": "VariableDeclaration", "scope": 9954, "src": "848:23:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9946, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "848:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9949, "mutability": "mutable", "name": "timeMgpPaid", "nameLocation": "885:11:48", "nodeType": "VariableDeclaration", "scope": 9954, "src": "877:19:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9948, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "877:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9951, "mutability": "mutable", "name": "timeBonusPaid", "nameLocation": "910:13:48", "nodeType": "VariableDeclaration", "scope": 9954, "src": "902:21:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9950, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "902:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9953, "mutability": "mutable", "name": "isRemoved", "nameLocation": "934:9:48", "nodeType": "VariableDeclaration", "scope": 9954, "src": "929:14:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 9952, "name": "bool", "nodeType": "ElementaryTypeName", "src": "929:4:48", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "name": "Collaborator", "nameLocation": "768:12:48", "nodeType": "StructDefinition", "scope": 9962, "src": "761:185:48", "visibility": "public"}, {"canonicalName": "Observer", "id": 9961, "members": [{"constant": false, "id": 9956, "mutability": "mutable", "name": "timeCreated", "nameLocation": "978:11:48", "nodeType": "VariableDeclaration", "scope": 9961, "src": "970:19:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9955, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "970:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9958, "mutability": "mutable", "name": "timePaid", "nameLocation": "1003:8:48", "nodeType": "VariableDeclaration", "scope": 9961, "src": "995:16:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9957, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "995:7:48", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 9960, "mutability": "mutable", "name": "isRemoved", "nameLocation": "1022:9:48", "nodeType": "VariableDeclaration", "scope": 9961, "src": "1017:14:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 9959, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1017:4:48", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "name": "Observer", "nameLocation": "955:8:48", "nodeType": "StructDefinition", "scope": 9962, "src": "948:86:48", "visibility": "public"}], "src": "32:1003:48"}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/hardhat/console.sol": {"AST": {"absolutePath": "hardhat/console.sol", "exportedSymbols": {"console": [18025]}, "id": 18026, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 9963, "literals": ["solidity", ">=", "0.4", ".22", "<", "0.9", ".0"], "nodeType": "PragmaDirective", "src": "32:33:49"}, {"abstract": false, "baseContracts": [], "canonicalName": "console", "contractDependencies": [], "contractKind": "library", "fullyImplemented": true, "id": 18025, "linearizedBaseContracts": [18025], "name": "console", "nameLocation": "75:7:49", "nodeType": "ContractDefinition", "nodes": [{"constant": true, "id": 9969, "mutability": "constant", "name": "CONSOLE_ADDRESS", "nameLocation": "103:15:49", "nodeType": "VariableDeclaration", "scope": 18025, "src": "86:86:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 9964, "name": "address", "nodeType": "ElementaryTypeName", "src": "86:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "value": {"arguments": [{"hexValue": "307830303030303030303030303030303030303036333646366537333646366336353265366336663637", "id": 9967, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "129:42:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "value": "0x000000000000000000636F6e736F6c652e6c6f67"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_address", "typeString": "address"}], "id": 9966, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "121:7:49", "typeDescriptions": {"typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)"}, "typeName": {"id": 9965, "name": "address", "nodeType": "ElementaryTypeName", "src": "121:7:49", "typeDescriptions": {}}}, "id": 9968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "121:51:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"body": {"id": 9984, "nodeType": "Block", "src": "236:228:49", "statements": [{"assignments": [9975], "declarations": [{"constant": false, "id": 9975, "mutability": "mutable", "name": "payloadLength", "nameLocation": "248:13:49", "nodeType": "VariableDeclaration", "scope": 9984, "src": "240:21:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 9974, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "240:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "id": 9978, "initialValue": {"expression": {"id": 9976, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9971, "src": "264:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}, "id": 9977, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "272:6:49", "memberName": "length", "nodeType": "MemberAccess", "src": "264:14:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "nodeType": "VariableDeclarationStatement", "src": "240:38:49"}, {"assignments": [9980], "declarations": [{"constant": false, "id": 9980, "mutability": "mutable", "name": "consoleAddress", "nameLocation": "290:14:49", "nodeType": "VariableDeclaration", "scope": 9984, "src": "282:22:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 9979, "name": "address", "nodeType": "ElementaryTypeName", "src": "282:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "id": 9982, "initialValue": {"id": 9981, "name": "CONSOLE_ADDRESS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9969, "src": "307:15:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "nodeType": "VariableDeclarationStatement", "src": "282:40:49"}, {"AST": {"nodeType": "YulBlock", "src": "335:126:49", "statements": [{"nodeType": "YulVariableDeclaration", "src": "340:36:49", "value": {"arguments": [{"name": "payload", "nodeType": "YulIdentifier", "src": "364:7:49"}, {"kind": "number", "nodeType": "YulLiteral", "src": "373:2:49", "type": "", "value": "32"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "360:3:49"}, "nodeType": "YulFunctionCall", "src": "360:16:49"}, "variables": [{"name": "payloadStart", "nodeType": "YulTypedName", "src": "344:12:49", "type": ""}]}, {"nodeType": "YulVariableDeclaration", "src": "380:77:49", "value": {"arguments": [{"arguments": [], "functionName": {"name": "gas", "nodeType": "YulIdentifier", "src": "400:3:49"}, "nodeType": "YulFunctionCall", "src": "400:5:49"}, {"name": "consoleAddress", "nodeType": "YulIdentifier", "src": "407:14:49"}, {"name": "payloadStart", "nodeType": "YulIdentifier", "src": "423:12:49"}, {"name": "payloadLength", "nodeType": "YulIdentifier", "src": "437:13:49"}, {"kind": "number", "nodeType": "YulLiteral", "src": "452:1:49", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "455:1:49", "type": "", "value": "0"}], "functionName": {"name": "staticcall", "nodeType": "YulIdentifier", "src": "389:10:49"}, "nodeType": "YulFunctionCall", "src": "389:68:49"}, "variables": [{"name": "r", "nodeType": "YulTypedName", "src": "384:1:49", "type": ""}]}]}, "evmVersion": "london", "externalReferences": [{"declaration": 9980, "isOffset": false, "isSlot": false, "src": "407:14:49", "valueSize": 1}, {"declaration": 9971, "isOffset": false, "isSlot": false, "src": "364:7:49", "valueSize": 1}, {"declaration": 9975, "isOffset": false, "isSlot": false, "src": "437:13:49", "valueSize": 1}], "id": 9983, "nodeType": "InlineAssembly", "src": "326:135:49"}]}, "id": 9985, "implemented": true, "kind": "function", "modifiers": [], "name": "_sendLogPayload", "nameLocation": "185:15:49", "nodeType": "FunctionDefinition", "parameters": {"id": 9972, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9971, "mutability": "mutable", "name": "payload", "nameLocation": "214:7:49", "nodeType": "VariableDeclaration", "scope": 9985, "src": "201:20:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 9970, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "201:5:49", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "200:22:49"}, "returnParameters": {"id": 9973, "nodeType": "ParameterList", "parameters": [], "src": "236:0:49"}, "scope": 18025, "src": "176:288:49", "stateMutability": "view", "virtual": false, "visibility": "private"}, {"body": {"id": 9995, "nodeType": "Block", "src": "496:57:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672829", "id": 9991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "540:7:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39", "typeString": "literal_string \"log()\""}, "value": "log()"}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39", "typeString": "literal_string \"log()\""}], "expression": {"id": 9989, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "516:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 9990, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "520:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "516:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 9992, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "516:32:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 9988, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "500:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 9993, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "500:49:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 9994, "nodeType": "ExpressionStatement", "src": "500:49:49"}]}, "id": 9996, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "476:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 9986, "nodeType": "ParameterList", "parameters": [], "src": "479:2:49"}, "returnParameters": {"id": 9987, "nodeType": "ParameterList", "parameters": [], "src": "496:0:49"}, "scope": 18025, "src": "467:86:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10009, "nodeType": "Block", "src": "597:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728696e7432353629", "id": 10004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "641:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8", "typeString": "literal_string \"log(int256)\""}, "value": "log(int256)"}, {"id": 10005, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9998, "src": "656:2:49", "typeDescriptions": {"typeIdentifier": "t_int256", "typeString": "int256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8", "typeString": "literal_string \"log(int256)\""}, {"typeIdentifier": "t_int256", "typeString": "int256"}], "expression": {"id": 10002, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "617:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10003, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "621:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "617:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10006, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "617:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10001, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "601:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10007, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "601:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10008, "nodeType": "ExpressionStatement", "src": "601:59:49"}]}, "id": 10010, "implemented": true, "kind": "function", "modifiers": [], "name": "logInt", "nameLocation": "565:6:49", "nodeType": "FunctionDefinition", "parameters": {"id": 9999, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 9998, "mutability": "mutable", "name": "p0", "nameLocation": "579:2:49", "nodeType": "VariableDeclaration", "scope": 10010, "src": "572:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_int256", "typeString": "int256"}, "typeName": {"id": 9997, "name": "int256", "nodeType": "ElementaryTypeName", "src": "572:6:49", "typeDescriptions": {"typeIdentifier": "t_int256", "typeString": "int256"}}, "visibility": "internal"}], "src": "571:11:49"}, "returnParameters": {"id": 10000, "nodeType": "ParameterList", "parameters": [], "src": "597:0:49"}, "scope": 18025, "src": "556:108:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10023, "nodeType": "Block", "src": "710:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e7432353629", "id": 10018, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "754:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744", "typeString": "literal_string \"log(uint256)\""}, "value": "log(uint256)"}, {"id": 10019, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10012, "src": "770:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744", "typeString": "literal_string \"log(uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 10016, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "730:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10017, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "734:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "730:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10020, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "730:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10015, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "714:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10021, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "714:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10022, "nodeType": "ExpressionStatement", "src": "714:60:49"}]}, "id": 10024, "implemented": true, "kind": "function", "modifiers": [], "name": "logUint", "nameLocation": "676:7:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10013, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10012, "mutability": "mutable", "name": "p0", "nameLocation": "692:2:49", "nodeType": "VariableDeclaration", "scope": 10024, "src": "684:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10011, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "684:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "683:12:49"}, "returnParameters": {"id": 10014, "nodeType": "ParameterList", "parameters": [], "src": "710:0:49"}, "scope": 18025, "src": "667:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10037, "nodeType": "Block", "src": "832:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e6729", "id": 10032, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "876:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50", "typeString": "literal_string \"log(string)\""}, "value": "log(string)"}, {"id": 10033, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10026, "src": "891:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50", "typeString": "literal_string \"log(string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 10030, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "852:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10031, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "856:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "852:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10034, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "852:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10029, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "836:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10035, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "836:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10036, "nodeType": "ExpressionStatement", "src": "836:59:49"}]}, "id": 10038, "implemented": true, "kind": "function", "modifiers": [], "name": "logString", "nameLocation": "790:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10027, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10026, "mutability": "mutable", "name": "p0", "nameLocation": "814:2:49", "nodeType": "VariableDeclaration", "scope": 10038, "src": "800:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10025, "name": "string", "nodeType": "ElementaryTypeName", "src": "800:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "799:18:49"}, "returnParameters": {"id": 10028, "nodeType": "ParameterList", "parameters": [], "src": "832:0:49"}, "scope": 18025, "src": "781:118:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10051, "nodeType": "Block", "src": "942:65:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c29", "id": 10046, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "986:11:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7", "typeString": "literal_string \"log(bool)\""}, "value": "log(bool)"}, {"id": 10047, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10040, "src": "999:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7", "typeString": "literal_string \"log(bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 10044, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "962:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10045, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "966:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "962:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10048, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "962:40:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10043, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "946:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10049, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "946:57:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10050, "nodeType": "ExpressionStatement", "src": "946:57:49"}]}, "id": 10052, "implemented": true, "kind": "function", "modifiers": [], "name": "logBool", "nameLocation": "911:7:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10041, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10040, "mutability": "mutable", "name": "p0", "nameLocation": "924:2:49", "nodeType": "VariableDeclaration", "scope": 10052, "src": "919:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10039, "name": "bool", "nodeType": "ElementaryTypeName", "src": "919:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "918:9:49"}, "returnParameters": {"id": 10042, "nodeType": "ParameterList", "parameters": [], "src": "942:0:49"}, "scope": 18025, "src": "902:105:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10065, "nodeType": "Block", "src": "1056:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286164647265737329", "id": 10060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1100:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428", "typeString": "literal_string \"log(address)\""}, "value": "log(address)"}, {"id": 10061, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10054, "src": "1116:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428", "typeString": "literal_string \"log(address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 10058, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1076:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10059, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1080:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "1076:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10062, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1076:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10057, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "1060:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10063, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1060:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10064, "nodeType": "ExpressionStatement", "src": "1060:60:49"}]}, "id": 10066, "implemented": true, "kind": "function", "modifiers": [], "name": "logAddress", "nameLocation": "1019:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10055, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10054, "mutability": "mutable", "name": "p0", "nameLocation": "1038:2:49", "nodeType": "VariableDeclaration", "scope": 10066, "src": "1030:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10053, "name": "address", "nodeType": "ElementaryTypeName", "src": "1030:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "1029:12:49"}, "returnParameters": {"id": 10056, "nodeType": "ParameterList", "parameters": [], "src": "1056:0:49"}, "scope": 18025, "src": "1010:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10079, "nodeType": "Block", "src": "1176:66:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728627974657329", "id": 10074, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1220:12:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238", "typeString": "literal_string \"log(bytes)\""}, "value": "log(bytes)"}, {"id": 10075, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10068, "src": "1234:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238", "typeString": "literal_string \"log(bytes)\""}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"id": 10072, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1196:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10073, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1200:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "1196:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10076, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1196:41:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10071, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "1180:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10077, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1180:58:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10078, "nodeType": "ExpressionStatement", "src": "1180:58:49"}]}, "id": 10080, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes", "nameLocation": "1136:8:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10069, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10068, "mutability": "mutable", "name": "p0", "nameLocation": "1158:2:49", "nodeType": "VariableDeclaration", "scope": 10080, "src": "1145:15:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 10067, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1145:5:49", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "1144:17:49"}, "returnParameters": {"id": 10070, "nodeType": "ParameterList", "parameters": [], "src": "1176:0:49"}, "scope": 18025, "src": "1127:115:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10093, "nodeType": "Block", "src": "1289:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672862797465733129", "id": 10088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1333:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041", "typeString": "literal_string \"log(bytes1)\""}, "value": "log(bytes1)"}, {"id": 10089, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10082, "src": "1348:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041", "typeString": "literal_string \"log(bytes1)\""}, {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}], "expression": {"id": 10086, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1309:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10087, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1313:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "1309:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10090, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1309:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10085, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "1293:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10091, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1293:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10092, "nodeType": "ExpressionStatement", "src": "1293:59:49"}]}, "id": 10094, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes1", "nameLocation": "1254:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10083, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10082, "mutability": "mutable", "name": "p0", "nameLocation": "1271:2:49", "nodeType": "VariableDeclaration", "scope": 10094, "src": "1264:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}, "typeName": {"id": 10081, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "1264:6:49", "typeDescriptions": {"typeIdentifier": "t_bytes1", "typeString": "bytes1"}}, "visibility": "internal"}], "src": "1263:11:49"}, "returnParameters": {"id": 10084, "nodeType": "ParameterList", "parameters": [], "src": "1289:0:49"}, "scope": 18025, "src": "1245:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10107, "nodeType": "Block", "src": "1403:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672862797465733229", "id": 10102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1447:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224", "typeString": "literal_string \"log(bytes2)\""}, "value": "log(bytes2)"}, {"id": 10103, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10096, "src": "1462:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes2", "typeString": "bytes2"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224", "typeString": "literal_string \"log(bytes2)\""}, {"typeIdentifier": "t_bytes2", "typeString": "bytes2"}], "expression": {"id": 10100, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1423:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10101, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1427:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "1423:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10104, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1423:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10099, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "1407:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10105, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1407:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10106, "nodeType": "ExpressionStatement", "src": "1407:59:49"}]}, "id": 10108, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes2", "nameLocation": "1368:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10097, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10096, "mutability": "mutable", "name": "p0", "nameLocation": "1385:2:49", "nodeType": "VariableDeclaration", "scope": 10108, "src": "1378:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes2", "typeString": "bytes2"}, "typeName": {"id": 10095, "name": "bytes2", "nodeType": "ElementaryTypeName", "src": "1378:6:49", "typeDescriptions": {"typeIdentifier": "t_bytes2", "typeString": "bytes2"}}, "visibility": "internal"}], "src": "1377:11:49"}, "returnParameters": {"id": 10098, "nodeType": "ParameterList", "parameters": [], "src": "1403:0:49"}, "scope": 18025, "src": "1359:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10121, "nodeType": "Block", "src": "1517:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672862797465733329", "id": 10116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1561:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee", "typeString": "literal_string \"log(bytes3)\""}, "value": "log(bytes3)"}, {"id": 10117, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10110, "src": "1576:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes3", "typeString": "bytes3"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee", "typeString": "literal_string \"log(bytes3)\""}, {"typeIdentifier": "t_bytes3", "typeString": "bytes3"}], "expression": {"id": 10114, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1537:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10115, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1541:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "1537:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10118, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1537:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10113, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "1521:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10119, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1521:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10120, "nodeType": "ExpressionStatement", "src": "1521:59:49"}]}, "id": 10122, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes3", "nameLocation": "1482:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10111, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10110, "mutability": "mutable", "name": "p0", "nameLocation": "1499:2:49", "nodeType": "VariableDeclaration", "scope": 10122, "src": "1492:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes3", "typeString": "bytes3"}, "typeName": {"id": 10109, "name": "bytes3", "nodeType": "ElementaryTypeName", "src": "1492:6:49", "typeDescriptions": {"typeIdentifier": "t_bytes3", "typeString": "bytes3"}}, "visibility": "internal"}], "src": "1491:11:49"}, "returnParameters": {"id": 10112, "nodeType": "ParameterList", "parameters": [], "src": "1517:0:49"}, "scope": 18025, "src": "1473:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10135, "nodeType": "Block", "src": "1631:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672862797465733429", "id": 10130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1675:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55", "typeString": "literal_string \"log(bytes4)\""}, "value": "log(bytes4)"}, {"id": 10131, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10124, "src": "1690:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55", "typeString": "literal_string \"log(bytes4)\""}, {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "expression": {"id": 10128, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1651:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10129, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1655:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "1651:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10132, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1651:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10127, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "1635:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10133, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1635:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10134, "nodeType": "ExpressionStatement", "src": "1635:59:49"}]}, "id": 10136, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes4", "nameLocation": "1596:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10125, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10124, "mutability": "mutable", "name": "p0", "nameLocation": "1613:2:49", "nodeType": "VariableDeclaration", "scope": 10136, "src": "1606:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 10123, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1606:6:49", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "1605:11:49"}, "returnParameters": {"id": 10126, "nodeType": "ParameterList", "parameters": [], "src": "1631:0:49"}, "scope": 18025, "src": "1587:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10149, "nodeType": "Block", "src": "1745:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672862797465733529", "id": 10144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1789:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a", "typeString": "literal_string \"log(bytes5)\""}, "value": "log(bytes5)"}, {"id": 10145, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10138, "src": "1804:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes5", "typeString": "bytes5"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a", "typeString": "literal_string \"log(bytes5)\""}, {"typeIdentifier": "t_bytes5", "typeString": "bytes5"}], "expression": {"id": 10142, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1765:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10143, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1769:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "1765:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10146, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1765:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10141, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "1749:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10147, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1749:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10148, "nodeType": "ExpressionStatement", "src": "1749:59:49"}]}, "id": 10150, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes5", "nameLocation": "1710:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10139, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10138, "mutability": "mutable", "name": "p0", "nameLocation": "1727:2:49", "nodeType": "VariableDeclaration", "scope": 10150, "src": "1720:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes5", "typeString": "bytes5"}, "typeName": {"id": 10137, "name": "bytes5", "nodeType": "ElementaryTypeName", "src": "1720:6:49", "typeDescriptions": {"typeIdentifier": "t_bytes5", "typeString": "bytes5"}}, "visibility": "internal"}], "src": "1719:11:49"}, "returnParameters": {"id": 10140, "nodeType": "ParameterList", "parameters": [], "src": "1745:0:49"}, "scope": 18025, "src": "1701:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10163, "nodeType": "Block", "src": "1859:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672862797465733629", "id": 10158, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1903:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330", "typeString": "literal_string \"log(bytes6)\""}, "value": "log(bytes6)"}, {"id": 10159, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10152, "src": "1918:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes6", "typeString": "bytes6"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330", "typeString": "literal_string \"log(bytes6)\""}, {"typeIdentifier": "t_bytes6", "typeString": "bytes6"}], "expression": {"id": 10156, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1879:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10157, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1883:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "1879:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10160, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1879:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10155, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "1863:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10161, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1863:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10162, "nodeType": "ExpressionStatement", "src": "1863:59:49"}]}, "id": 10164, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes6", "nameLocation": "1824:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10153, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10152, "mutability": "mutable", "name": "p0", "nameLocation": "1841:2:49", "nodeType": "VariableDeclaration", "scope": 10164, "src": "1834:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes6", "typeString": "bytes6"}, "typeName": {"id": 10151, "name": "bytes6", "nodeType": "ElementaryTypeName", "src": "1834:6:49", "typeDescriptions": {"typeIdentifier": "t_bytes6", "typeString": "bytes6"}}, "visibility": "internal"}], "src": "1833:11:49"}, "returnParameters": {"id": 10154, "nodeType": "ParameterList", "parameters": [], "src": "1859:0:49"}, "scope": 18025, "src": "1815:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10177, "nodeType": "Block", "src": "1973:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672862797465733729", "id": 10172, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2017:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29", "typeString": "literal_string \"log(bytes7)\""}, "value": "log(bytes7)"}, {"id": 10173, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10166, "src": "2032:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes7", "typeString": "bytes7"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29", "typeString": "literal_string \"log(bytes7)\""}, {"typeIdentifier": "t_bytes7", "typeString": "bytes7"}], "expression": {"id": 10170, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "1993:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10171, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1997:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "1993:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10174, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1993:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10169, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "1977:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10175, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1977:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10176, "nodeType": "ExpressionStatement", "src": "1977:59:49"}]}, "id": 10178, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes7", "nameLocation": "1938:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10167, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10166, "mutability": "mutable", "name": "p0", "nameLocation": "1955:2:49", "nodeType": "VariableDeclaration", "scope": 10178, "src": "1948:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes7", "typeString": "bytes7"}, "typeName": {"id": 10165, "name": "bytes7", "nodeType": "ElementaryTypeName", "src": "1948:6:49", "typeDescriptions": {"typeIdentifier": "t_bytes7", "typeString": "bytes7"}}, "visibility": "internal"}], "src": "1947:11:49"}, "returnParameters": {"id": 10168, "nodeType": "ParameterList", "parameters": [], "src": "1973:0:49"}, "scope": 18025, "src": "1929:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10191, "nodeType": "Block", "src": "2087:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672862797465733829", "id": 10186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2131:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3", "typeString": "literal_string \"log(bytes8)\""}, "value": "log(bytes8)"}, {"id": 10187, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10180, "src": "2146:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes8", "typeString": "bytes8"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3", "typeString": "literal_string \"log(bytes8)\""}, {"typeIdentifier": "t_bytes8", "typeString": "bytes8"}], "expression": {"id": 10184, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2107:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10185, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2111:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "2107:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10188, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2107:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10183, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "2091:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10189, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2091:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10190, "nodeType": "ExpressionStatement", "src": "2091:59:49"}]}, "id": 10192, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes8", "nameLocation": "2052:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10181, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10180, "mutability": "mutable", "name": "p0", "nameLocation": "2069:2:49", "nodeType": "VariableDeclaration", "scope": 10192, "src": "2062:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes8", "typeString": "bytes8"}, "typeName": {"id": 10179, "name": "bytes8", "nodeType": "ElementaryTypeName", "src": "2062:6:49", "typeDescriptions": {"typeIdentifier": "t_bytes8", "typeString": "bytes8"}}, "visibility": "internal"}], "src": "2061:11:49"}, "returnParameters": {"id": 10182, "nodeType": "ParameterList", "parameters": [], "src": "2087:0:49"}, "scope": 18025, "src": "2043:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10205, "nodeType": "Block", "src": "2201:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672862797465733929", "id": 10200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2245:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667", "typeString": "literal_string \"log(bytes9)\""}, "value": "log(bytes9)"}, {"id": 10201, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10194, "src": "2260:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes9", "typeString": "bytes9"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667", "typeString": "literal_string \"log(bytes9)\""}, {"typeIdentifier": "t_bytes9", "typeString": "bytes9"}], "expression": {"id": 10198, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2221:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10199, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2225:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "2221:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10202, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2221:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10197, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "2205:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10203, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2205:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10204, "nodeType": "ExpressionStatement", "src": "2205:59:49"}]}, "id": 10206, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes9", "nameLocation": "2166:9:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10195, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10194, "mutability": "mutable", "name": "p0", "nameLocation": "2183:2:49", "nodeType": "VariableDeclaration", "scope": 10206, "src": "2176:9:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes9", "typeString": "bytes9"}, "typeName": {"id": 10193, "name": "bytes9", "nodeType": "ElementaryTypeName", "src": "2176:6:49", "typeDescriptions": {"typeIdentifier": "t_bytes9", "typeString": "bytes9"}}, "visibility": "internal"}], "src": "2175:11:49"}, "returnParameters": {"id": 10196, "nodeType": "ParameterList", "parameters": [], "src": "2201:0:49"}, "scope": 18025, "src": "2157:111:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10219, "nodeType": "Block", "src": "2317:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313029", "id": 10214, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2361:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66", "typeString": "literal_string \"log(bytes10)\""}, "value": "log(bytes10)"}, {"id": 10215, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10208, "src": "2377:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes10", "typeString": "bytes10"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66", "typeString": "literal_string \"log(bytes10)\""}, {"typeIdentifier": "t_bytes10", "typeString": "bytes10"}], "expression": {"id": 10212, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2337:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10213, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2341:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "2337:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10216, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2337:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10211, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "2321:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10217, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2321:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10218, "nodeType": "ExpressionStatement", "src": "2321:60:49"}]}, "id": 10220, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes10", "nameLocation": "2280:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10209, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10208, "mutability": "mutable", "name": "p0", "nameLocation": "2299:2:49", "nodeType": "VariableDeclaration", "scope": 10220, "src": "2291:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes10", "typeString": "bytes10"}, "typeName": {"id": 10207, "name": "bytes10", "nodeType": "ElementaryTypeName", "src": "2291:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes10", "typeString": "bytes10"}}, "visibility": "internal"}], "src": "2290:12:49"}, "returnParameters": {"id": 10210, "nodeType": "ParameterList", "parameters": [], "src": "2317:0:49"}, "scope": 18025, "src": "2271:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10233, "nodeType": "Block", "src": "2434:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313129", "id": 10228, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2478:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9", "typeString": "literal_string \"log(bytes11)\""}, "value": "log(bytes11)"}, {"id": 10229, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10222, "src": "2494:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes11", "typeString": "bytes11"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9", "typeString": "literal_string \"log(bytes11)\""}, {"typeIdentifier": "t_bytes11", "typeString": "bytes11"}], "expression": {"id": 10226, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2454:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10227, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2458:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "2454:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10230, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2454:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10225, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "2438:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10231, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2438:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10232, "nodeType": "ExpressionStatement", "src": "2438:60:49"}]}, "id": 10234, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes11", "nameLocation": "2397:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10223, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10222, "mutability": "mutable", "name": "p0", "nameLocation": "2416:2:49", "nodeType": "VariableDeclaration", "scope": 10234, "src": "2408:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes11", "typeString": "bytes11"}, "typeName": {"id": 10221, "name": "bytes11", "nodeType": "ElementaryTypeName", "src": "2408:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes11", "typeString": "bytes11"}}, "visibility": "internal"}], "src": "2407:12:49"}, "returnParameters": {"id": 10224, "nodeType": "ParameterList", "parameters": [], "src": "2434:0:49"}, "scope": 18025, "src": "2388:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10247, "nodeType": "Block", "src": "2551:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313229", "id": 10242, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2595:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2", "typeString": "literal_string \"log(bytes12)\""}, "value": "log(bytes12)"}, {"id": 10243, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10236, "src": "2611:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes12", "typeString": "bytes12"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2", "typeString": "literal_string \"log(bytes12)\""}, {"typeIdentifier": "t_bytes12", "typeString": "bytes12"}], "expression": {"id": 10240, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2571:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10241, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2575:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "2571:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10244, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2571:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10239, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "2555:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10245, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2555:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10246, "nodeType": "ExpressionStatement", "src": "2555:60:49"}]}, "id": 10248, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes12", "nameLocation": "2514:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10237, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10236, "mutability": "mutable", "name": "p0", "nameLocation": "2533:2:49", "nodeType": "VariableDeclaration", "scope": 10248, "src": "2525:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes12", "typeString": "bytes12"}, "typeName": {"id": 10235, "name": "bytes12", "nodeType": "ElementaryTypeName", "src": "2525:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes12", "typeString": "bytes12"}}, "visibility": "internal"}], "src": "2524:12:49"}, "returnParameters": {"id": 10238, "nodeType": "ParameterList", "parameters": [], "src": "2551:0:49"}, "scope": 18025, "src": "2505:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10261, "nodeType": "Block", "src": "2668:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313329", "id": 10256, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2712:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec", "typeString": "literal_string \"log(bytes13)\""}, "value": "log(bytes13)"}, {"id": 10257, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10250, "src": "2728:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes13", "typeString": "bytes13"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec", "typeString": "literal_string \"log(bytes13)\""}, {"typeIdentifier": "t_bytes13", "typeString": "bytes13"}], "expression": {"id": 10254, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2688:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10255, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2692:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "2688:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10258, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2688:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10253, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "2672:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10259, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2672:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10260, "nodeType": "ExpressionStatement", "src": "2672:60:49"}]}, "id": 10262, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes13", "nameLocation": "2631:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10251, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10250, "mutability": "mutable", "name": "p0", "nameLocation": "2650:2:49", "nodeType": "VariableDeclaration", "scope": 10262, "src": "2642:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes13", "typeString": "bytes13"}, "typeName": {"id": 10249, "name": "bytes13", "nodeType": "ElementaryTypeName", "src": "2642:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes13", "typeString": "bytes13"}}, "visibility": "internal"}], "src": "2641:12:49"}, "returnParameters": {"id": 10252, "nodeType": "ParameterList", "parameters": [], "src": "2668:0:49"}, "scope": 18025, "src": "2622:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10275, "nodeType": "Block", "src": "2785:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313429", "id": 10270, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2829:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278", "typeString": "literal_string \"log(bytes14)\""}, "value": "log(bytes14)"}, {"id": 10271, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10264, "src": "2845:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes14", "typeString": "bytes14"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278", "typeString": "literal_string \"log(bytes14)\""}, {"typeIdentifier": "t_bytes14", "typeString": "bytes14"}], "expression": {"id": 10268, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2805:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10269, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2809:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "2805:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10272, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2805:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10267, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "2789:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10273, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2789:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10274, "nodeType": "ExpressionStatement", "src": "2789:60:49"}]}, "id": 10276, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes14", "nameLocation": "2748:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10265, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10264, "mutability": "mutable", "name": "p0", "nameLocation": "2767:2:49", "nodeType": "VariableDeclaration", "scope": 10276, "src": "2759:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes14", "typeString": "bytes14"}, "typeName": {"id": 10263, "name": "bytes14", "nodeType": "ElementaryTypeName", "src": "2759:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes14", "typeString": "bytes14"}}, "visibility": "internal"}], "src": "2758:12:49"}, "returnParameters": {"id": 10266, "nodeType": "ParameterList", "parameters": [], "src": "2785:0:49"}, "scope": 18025, "src": "2739:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10289, "nodeType": "Block", "src": "2902:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313529", "id": 10284, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2946:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606", "typeString": "literal_string \"log(bytes15)\""}, "value": "log(bytes15)"}, {"id": 10285, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10278, "src": "2962:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes15", "typeString": "bytes15"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606", "typeString": "literal_string \"log(bytes15)\""}, {"typeIdentifier": "t_bytes15", "typeString": "bytes15"}], "expression": {"id": 10282, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "2922:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10283, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "2926:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "2922:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10286, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2922:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10281, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "2906:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10287, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2906:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10288, "nodeType": "ExpressionStatement", "src": "2906:60:49"}]}, "id": 10290, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes15", "nameLocation": "2865:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10279, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10278, "mutability": "mutable", "name": "p0", "nameLocation": "2884:2:49", "nodeType": "VariableDeclaration", "scope": 10290, "src": "2876:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes15", "typeString": "bytes15"}, "typeName": {"id": 10277, "name": "bytes15", "nodeType": "ElementaryTypeName", "src": "2876:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes15", "typeString": "bytes15"}}, "visibility": "internal"}], "src": "2875:12:49"}, "returnParameters": {"id": 10280, "nodeType": "ParameterList", "parameters": [], "src": "2902:0:49"}, "scope": 18025, "src": "2856:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10303, "nodeType": "Block", "src": "3019:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313629", "id": 10298, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3063:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3", "typeString": "literal_string \"log(bytes16)\""}, "value": "log(bytes16)"}, {"id": 10299, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10292, "src": "3079:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3", "typeString": "literal_string \"log(bytes16)\""}, {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}], "expression": {"id": 10296, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3039:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10297, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3043:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "3039:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10300, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3039:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10295, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "3023:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10301, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3023:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10302, "nodeType": "ExpressionStatement", "src": "3023:60:49"}]}, "id": 10304, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes16", "nameLocation": "2982:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10293, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10292, "mutability": "mutable", "name": "p0", "nameLocation": "3001:2:49", "nodeType": "VariableDeclaration", "scope": 10304, "src": "2993:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}, "typeName": {"id": 10291, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2993:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes16", "typeString": "bytes16"}}, "visibility": "internal"}], "src": "2992:12:49"}, "returnParameters": {"id": 10294, "nodeType": "ParameterList", "parameters": [], "src": "3019:0:49"}, "scope": 18025, "src": "2973:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10317, "nodeType": "Block", "src": "3136:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313729", "id": 10312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3180:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3", "typeString": "literal_string \"log(bytes17)\""}, "value": "log(bytes17)"}, {"id": 10313, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10306, "src": "3196:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes17", "typeString": "bytes17"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3", "typeString": "literal_string \"log(bytes17)\""}, {"typeIdentifier": "t_bytes17", "typeString": "bytes17"}], "expression": {"id": 10310, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3156:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10311, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3160:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "3156:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10314, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3156:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10309, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "3140:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10315, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3140:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10316, "nodeType": "ExpressionStatement", "src": "3140:60:49"}]}, "id": 10318, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes17", "nameLocation": "3099:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10307, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10306, "mutability": "mutable", "name": "p0", "nameLocation": "3118:2:49", "nodeType": "VariableDeclaration", "scope": 10318, "src": "3110:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes17", "typeString": "bytes17"}, "typeName": {"id": 10305, "name": "bytes17", "nodeType": "ElementaryTypeName", "src": "3110:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes17", "typeString": "bytes17"}}, "visibility": "internal"}], "src": "3109:12:49"}, "returnParameters": {"id": 10308, "nodeType": "ParameterList", "parameters": [], "src": "3136:0:49"}, "scope": 18025, "src": "3090:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10331, "nodeType": "Block", "src": "3253:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313829", "id": 10326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3297:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116", "typeString": "literal_string \"log(bytes18)\""}, "value": "log(bytes18)"}, {"id": 10327, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10320, "src": "3313:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes18", "typeString": "bytes18"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116", "typeString": "literal_string \"log(bytes18)\""}, {"typeIdentifier": "t_bytes18", "typeString": "bytes18"}], "expression": {"id": 10324, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3273:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10325, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3277:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "3273:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10328, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3273:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10323, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "3257:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10329, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3257:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10330, "nodeType": "ExpressionStatement", "src": "3257:60:49"}]}, "id": 10332, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes18", "nameLocation": "3216:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10321, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10320, "mutability": "mutable", "name": "p0", "nameLocation": "3235:2:49", "nodeType": "VariableDeclaration", "scope": 10332, "src": "3227:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes18", "typeString": "bytes18"}, "typeName": {"id": 10319, "name": "bytes18", "nodeType": "ElementaryTypeName", "src": "3227:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes18", "typeString": "bytes18"}}, "visibility": "internal"}], "src": "3226:12:49"}, "returnParameters": {"id": 10322, "nodeType": "ParameterList", "parameters": [], "src": "3253:0:49"}, "scope": 18025, "src": "3207:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10345, "nodeType": "Block", "src": "3370:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573313929", "id": 10340, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3414:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada", "typeString": "literal_string \"log(bytes19)\""}, "value": "log(bytes19)"}, {"id": 10341, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10334, "src": "3430:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes19", "typeString": "bytes19"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada", "typeString": "literal_string \"log(bytes19)\""}, {"typeIdentifier": "t_bytes19", "typeString": "bytes19"}], "expression": {"id": 10338, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3390:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10339, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3394:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "3390:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10342, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3390:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10337, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "3374:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10343, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3374:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10344, "nodeType": "ExpressionStatement", "src": "3374:60:49"}]}, "id": 10346, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes19", "nameLocation": "3333:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10335, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10334, "mutability": "mutable", "name": "p0", "nameLocation": "3352:2:49", "nodeType": "VariableDeclaration", "scope": 10346, "src": "3344:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes19", "typeString": "bytes19"}, "typeName": {"id": 10333, "name": "bytes19", "nodeType": "ElementaryTypeName", "src": "3344:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes19", "typeString": "bytes19"}}, "visibility": "internal"}], "src": "3343:12:49"}, "returnParameters": {"id": 10336, "nodeType": "ParameterList", "parameters": [], "src": "3370:0:49"}, "scope": 18025, "src": "3324:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10359, "nodeType": "Block", "src": "3487:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323029", "id": 10354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3531:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231", "typeString": "literal_string \"log(bytes20)\""}, "value": "log(bytes20)"}, {"id": 10355, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10348, "src": "3547:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes20", "typeString": "bytes20"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231", "typeString": "literal_string \"log(bytes20)\""}, {"typeIdentifier": "t_bytes20", "typeString": "bytes20"}], "expression": {"id": 10352, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3507:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10353, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3511:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "3507:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10356, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3507:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10351, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "3491:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10357, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3491:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10358, "nodeType": "ExpressionStatement", "src": "3491:60:49"}]}, "id": 10360, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes20", "nameLocation": "3450:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10349, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10348, "mutability": "mutable", "name": "p0", "nameLocation": "3469:2:49", "nodeType": "VariableDeclaration", "scope": 10360, "src": "3461:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes20", "typeString": "bytes20"}, "typeName": {"id": 10347, "name": "bytes20", "nodeType": "ElementaryTypeName", "src": "3461:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes20", "typeString": "bytes20"}}, "visibility": "internal"}], "src": "3460:12:49"}, "returnParameters": {"id": 10350, "nodeType": "ParameterList", "parameters": [], "src": "3487:0:49"}, "scope": 18025, "src": "3441:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10373, "nodeType": "Block", "src": "3604:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323129", "id": 10368, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3648:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7", "typeString": "literal_string \"log(bytes21)\""}, "value": "log(bytes21)"}, {"id": 10369, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10362, "src": "3664:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes21", "typeString": "bytes21"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7", "typeString": "literal_string \"log(bytes21)\""}, {"typeIdentifier": "t_bytes21", "typeString": "bytes21"}], "expression": {"id": 10366, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3624:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10367, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3628:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "3624:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10370, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3624:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10365, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "3608:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10371, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3608:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10372, "nodeType": "ExpressionStatement", "src": "3608:60:49"}]}, "id": 10374, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes21", "nameLocation": "3567:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10363, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10362, "mutability": "mutable", "name": "p0", "nameLocation": "3586:2:49", "nodeType": "VariableDeclaration", "scope": 10374, "src": "3578:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes21", "typeString": "bytes21"}, "typeName": {"id": 10361, "name": "bytes21", "nodeType": "ElementaryTypeName", "src": "3578:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes21", "typeString": "bytes21"}}, "visibility": "internal"}], "src": "3577:12:49"}, "returnParameters": {"id": 10364, "nodeType": "ParameterList", "parameters": [], "src": "3604:0:49"}, "scope": 18025, "src": "3558:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10387, "nodeType": "Block", "src": "3721:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323229", "id": 10382, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3765:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575", "typeString": "literal_string \"log(bytes22)\""}, "value": "log(bytes22)"}, {"id": 10383, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10376, "src": "3781:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes22", "typeString": "bytes22"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575", "typeString": "literal_string \"log(bytes22)\""}, {"typeIdentifier": "t_bytes22", "typeString": "bytes22"}], "expression": {"id": 10380, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3741:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10381, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3745:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "3741:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10384, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3741:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10379, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "3725:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10385, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3725:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10386, "nodeType": "ExpressionStatement", "src": "3725:60:49"}]}, "id": 10388, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes22", "nameLocation": "3684:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10377, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10376, "mutability": "mutable", "name": "p0", "nameLocation": "3703:2:49", "nodeType": "VariableDeclaration", "scope": 10388, "src": "3695:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes22", "typeString": "bytes22"}, "typeName": {"id": 10375, "name": "bytes22", "nodeType": "ElementaryTypeName", "src": "3695:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes22", "typeString": "bytes22"}}, "visibility": "internal"}], "src": "3694:12:49"}, "returnParameters": {"id": 10378, "nodeType": "ParameterList", "parameters": [], "src": "3721:0:49"}, "scope": 18025, "src": "3675:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10401, "nodeType": "Block", "src": "3838:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323329", "id": 10396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3882:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061", "typeString": "literal_string \"log(bytes23)\""}, "value": "log(bytes23)"}, {"id": 10397, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10390, "src": "3898:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes23", "typeString": "bytes23"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061", "typeString": "literal_string \"log(bytes23)\""}, {"typeIdentifier": "t_bytes23", "typeString": "bytes23"}], "expression": {"id": 10394, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3858:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10395, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3862:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "3858:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10398, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3858:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10393, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "3842:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10399, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3842:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10400, "nodeType": "ExpressionStatement", "src": "3842:60:49"}]}, "id": 10402, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes23", "nameLocation": "3801:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10391, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10390, "mutability": "mutable", "name": "p0", "nameLocation": "3820:2:49", "nodeType": "VariableDeclaration", "scope": 10402, "src": "3812:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes23", "typeString": "bytes23"}, "typeName": {"id": 10389, "name": "bytes23", "nodeType": "ElementaryTypeName", "src": "3812:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes23", "typeString": "bytes23"}}, "visibility": "internal"}], "src": "3811:12:49"}, "returnParameters": {"id": 10392, "nodeType": "ParameterList", "parameters": [], "src": "3838:0:49"}, "scope": 18025, "src": "3792:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10415, "nodeType": "Block", "src": "3955:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323429", "id": 10410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3999:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4", "typeString": "literal_string \"log(bytes24)\""}, "value": "log(bytes24)"}, {"id": 10411, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10404, "src": "4015:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes24", "typeString": "bytes24"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4", "typeString": "literal_string \"log(bytes24)\""}, {"typeIdentifier": "t_bytes24", "typeString": "bytes24"}], "expression": {"id": 10408, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3975:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10409, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3979:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "3975:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10412, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3975:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10407, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "3959:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10413, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3959:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10414, "nodeType": "ExpressionStatement", "src": "3959:60:49"}]}, "id": 10416, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes24", "nameLocation": "3918:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10405, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10404, "mutability": "mutable", "name": "p0", "nameLocation": "3937:2:49", "nodeType": "VariableDeclaration", "scope": 10416, "src": "3929:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes24", "typeString": "bytes24"}, "typeName": {"id": 10403, "name": "bytes24", "nodeType": "ElementaryTypeName", "src": "3929:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes24", "typeString": "bytes24"}}, "visibility": "internal"}], "src": "3928:12:49"}, "returnParameters": {"id": 10406, "nodeType": "ParameterList", "parameters": [], "src": "3955:0:49"}, "scope": 18025, "src": "3909:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10429, "nodeType": "Block", "src": "4072:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323529", "id": 10424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4116:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25", "typeString": "literal_string \"log(bytes25)\""}, "value": "log(bytes25)"}, {"id": 10425, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10418, "src": "4132:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes25", "typeString": "bytes25"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25", "typeString": "literal_string \"log(bytes25)\""}, {"typeIdentifier": "t_bytes25", "typeString": "bytes25"}], "expression": {"id": 10422, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4092:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10423, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4096:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "4092:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10426, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4092:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10421, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "4076:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10427, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4076:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10428, "nodeType": "ExpressionStatement", "src": "4076:60:49"}]}, "id": 10430, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes25", "nameLocation": "4035:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10419, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10418, "mutability": "mutable", "name": "p0", "nameLocation": "4054:2:49", "nodeType": "VariableDeclaration", "scope": 10430, "src": "4046:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes25", "typeString": "bytes25"}, "typeName": {"id": 10417, "name": "bytes25", "nodeType": "ElementaryTypeName", "src": "4046:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes25", "typeString": "bytes25"}}, "visibility": "internal"}], "src": "4045:12:49"}, "returnParameters": {"id": 10420, "nodeType": "ParameterList", "parameters": [], "src": "4072:0:49"}, "scope": 18025, "src": "4026:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10443, "nodeType": "Block", "src": "4189:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323629", "id": 10438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4233:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b", "typeString": "literal_string \"log(bytes26)\""}, "value": "log(bytes26)"}, {"id": 10439, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10432, "src": "4249:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes26", "typeString": "bytes26"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b", "typeString": "literal_string \"log(bytes26)\""}, {"typeIdentifier": "t_bytes26", "typeString": "bytes26"}], "expression": {"id": 10436, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4209:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10437, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4213:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "4209:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10440, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4209:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10435, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "4193:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10441, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4193:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10442, "nodeType": "ExpressionStatement", "src": "4193:60:49"}]}, "id": 10444, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes26", "nameLocation": "4152:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10433, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10432, "mutability": "mutable", "name": "p0", "nameLocation": "4171:2:49", "nodeType": "VariableDeclaration", "scope": 10444, "src": "4163:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes26", "typeString": "bytes26"}, "typeName": {"id": 10431, "name": "bytes26", "nodeType": "ElementaryTypeName", "src": "4163:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes26", "typeString": "bytes26"}}, "visibility": "internal"}], "src": "4162:12:49"}, "returnParameters": {"id": 10434, "nodeType": "ParameterList", "parameters": [], "src": "4189:0:49"}, "scope": 18025, "src": "4143:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10457, "nodeType": "Block", "src": "4306:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323729", "id": 10452, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4350:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6", "typeString": "literal_string \"log(bytes27)\""}, "value": "log(bytes27)"}, {"id": 10453, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10446, "src": "4366:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes27", "typeString": "bytes27"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6", "typeString": "literal_string \"log(bytes27)\""}, {"typeIdentifier": "t_bytes27", "typeString": "bytes27"}], "expression": {"id": 10450, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4326:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10451, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4330:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "4326:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10454, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4326:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10449, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "4310:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10455, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4310:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10456, "nodeType": "ExpressionStatement", "src": "4310:60:49"}]}, "id": 10458, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes27", "nameLocation": "4269:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10447, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10446, "mutability": "mutable", "name": "p0", "nameLocation": "4288:2:49", "nodeType": "VariableDeclaration", "scope": 10458, "src": "4280:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes27", "typeString": "bytes27"}, "typeName": {"id": 10445, "name": "bytes27", "nodeType": "ElementaryTypeName", "src": "4280:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes27", "typeString": "bytes27"}}, "visibility": "internal"}], "src": "4279:12:49"}, "returnParameters": {"id": 10448, "nodeType": "ParameterList", "parameters": [], "src": "4306:0:49"}, "scope": 18025, "src": "4260:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10471, "nodeType": "Block", "src": "4423:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323829", "id": 10466, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4467:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042", "typeString": "literal_string \"log(bytes28)\""}, "value": "log(bytes28)"}, {"id": 10467, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10460, "src": "4483:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes28", "typeString": "bytes28"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042", "typeString": "literal_string \"log(bytes28)\""}, {"typeIdentifier": "t_bytes28", "typeString": "bytes28"}], "expression": {"id": 10464, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4443:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10465, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4447:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "4443:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10468, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4443:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10463, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "4427:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10469, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4427:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10470, "nodeType": "ExpressionStatement", "src": "4427:60:49"}]}, "id": 10472, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes28", "nameLocation": "4386:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10461, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10460, "mutability": "mutable", "name": "p0", "nameLocation": "4405:2:49", "nodeType": "VariableDeclaration", "scope": 10472, "src": "4397:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes28", "typeString": "bytes28"}, "typeName": {"id": 10459, "name": "bytes28", "nodeType": "ElementaryTypeName", "src": "4397:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes28", "typeString": "bytes28"}}, "visibility": "internal"}], "src": "4396:12:49"}, "returnParameters": {"id": 10462, "nodeType": "ParameterList", "parameters": [], "src": "4423:0:49"}, "scope": 18025, "src": "4377:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10485, "nodeType": "Block", "src": "4540:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573323929", "id": 10480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4584:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667", "typeString": "literal_string \"log(bytes29)\""}, "value": "log(bytes29)"}, {"id": 10481, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10474, "src": "4600:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes29", "typeString": "bytes29"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667", "typeString": "literal_string \"log(bytes29)\""}, {"typeIdentifier": "t_bytes29", "typeString": "bytes29"}], "expression": {"id": 10478, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4560:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10479, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4564:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "4560:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10482, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4560:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10477, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "4544:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10483, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4544:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10484, "nodeType": "ExpressionStatement", "src": "4544:60:49"}]}, "id": 10486, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes29", "nameLocation": "4503:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10475, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10474, "mutability": "mutable", "name": "p0", "nameLocation": "4522:2:49", "nodeType": "VariableDeclaration", "scope": 10486, "src": "4514:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes29", "typeString": "bytes29"}, "typeName": {"id": 10473, "name": "bytes29", "nodeType": "ElementaryTypeName", "src": "4514:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes29", "typeString": "bytes29"}}, "visibility": "internal"}], "src": "4513:12:49"}, "returnParameters": {"id": 10476, "nodeType": "ParameterList", "parameters": [], "src": "4540:0:49"}, "scope": 18025, "src": "4494:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10499, "nodeType": "Block", "src": "4657:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573333029", "id": 10494, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4701:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad", "typeString": "literal_string \"log(bytes30)\""}, "value": "log(bytes30)"}, {"id": 10495, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10488, "src": "4717:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes30", "typeString": "bytes30"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad", "typeString": "literal_string \"log(bytes30)\""}, {"typeIdentifier": "t_bytes30", "typeString": "bytes30"}], "expression": {"id": 10492, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4677:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10493, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4681:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "4677:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10496, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4677:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10491, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "4661:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10497, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4661:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10498, "nodeType": "ExpressionStatement", "src": "4661:60:49"}]}, "id": 10500, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes30", "nameLocation": "4620:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10489, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10488, "mutability": "mutable", "name": "p0", "nameLocation": "4639:2:49", "nodeType": "VariableDeclaration", "scope": 10500, "src": "4631:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes30", "typeString": "bytes30"}, "typeName": {"id": 10487, "name": "bytes30", "nodeType": "ElementaryTypeName", "src": "4631:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes30", "typeString": "bytes30"}}, "visibility": "internal"}], "src": "4630:12:49"}, "returnParameters": {"id": 10490, "nodeType": "ParameterList", "parameters": [], "src": "4657:0:49"}, "scope": 18025, "src": "4611:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10513, "nodeType": "Block", "src": "4774:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573333129", "id": 10508, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4818:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce", "typeString": "literal_string \"log(bytes31)\""}, "value": "log(bytes31)"}, {"id": 10509, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10502, "src": "4834:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes31", "typeString": "bytes31"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce", "typeString": "literal_string \"log(bytes31)\""}, {"typeIdentifier": "t_bytes31", "typeString": "bytes31"}], "expression": {"id": 10506, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4794:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10507, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4798:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "4794:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10510, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4794:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10505, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "4778:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10511, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4778:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10512, "nodeType": "ExpressionStatement", "src": "4778:60:49"}]}, "id": 10514, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes31", "nameLocation": "4737:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10503, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10502, "mutability": "mutable", "name": "p0", "nameLocation": "4756:2:49", "nodeType": "VariableDeclaration", "scope": 10514, "src": "4748:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes31", "typeString": "bytes31"}, "typeName": {"id": 10501, "name": "bytes31", "nodeType": "ElementaryTypeName", "src": "4748:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes31", "typeString": "bytes31"}}, "visibility": "internal"}], "src": "4747:12:49"}, "returnParameters": {"id": 10504, "nodeType": "ParameterList", "parameters": [], "src": "4774:0:49"}, "scope": 18025, "src": "4728:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10527, "nodeType": "Block", "src": "4891:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286279746573333229", "id": 10522, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4935:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da", "typeString": "literal_string \"log(bytes32)\""}, "value": "log(bytes32)"}, {"id": 10523, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10516, "src": "4951:2:49", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da", "typeString": "literal_string \"log(bytes32)\""}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}], "expression": {"id": 10520, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4911:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10521, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4915:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "4911:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10524, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4911:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10519, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "4895:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10525, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4895:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10526, "nodeType": "ExpressionStatement", "src": "4895:60:49"}]}, "id": 10528, "implemented": true, "kind": "function", "modifiers": [], "name": "logBytes32", "nameLocation": "4854:10:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10517, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10516, "mutability": "mutable", "name": "p0", "nameLocation": "4873:2:49", "nodeType": "VariableDeclaration", "scope": 10528, "src": "4865:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 10515, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4865:7:49", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "4864:12:49"}, "returnParameters": {"id": 10518, "nodeType": "ParameterList", "parameters": [], "src": "4891:0:49"}, "scope": 18025, "src": "4845:114:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10541, "nodeType": "Block", "src": "5001:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e7432353629", "id": 10536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5045:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744", "typeString": "literal_string \"log(uint256)\""}, "value": "log(uint256)"}, {"id": 10537, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10530, "src": "5061:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744", "typeString": "literal_string \"log(uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 10534, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5021:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10535, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5025:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "5021:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10538, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5021:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10533, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "5005:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10539, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5005:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10540, "nodeType": "ExpressionStatement", "src": "5005:60:49"}]}, "id": 10542, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "4971:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10531, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10530, "mutability": "mutable", "name": "p0", "nameLocation": "4983:2:49", "nodeType": "VariableDeclaration", "scope": 10542, "src": "4975:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10529, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4975:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "4974:12:49"}, "returnParameters": {"id": 10532, "nodeType": "ParameterList", "parameters": [], "src": "5001:0:49"}, "scope": 18025, "src": "4962:107:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10555, "nodeType": "Block", "src": "5117:67:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e6729", "id": 10550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5161:13:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50", "typeString": "literal_string \"log(string)\""}, "value": "log(string)"}, {"id": 10551, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10544, "src": "5176:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50", "typeString": "literal_string \"log(string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 10548, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5137:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10549, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5141:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "5137:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10552, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5137:42:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10547, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "5121:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10553, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5121:59:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10554, "nodeType": "ExpressionStatement", "src": "5121:59:49"}]}, "id": 10556, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "5081:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10545, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10544, "mutability": "mutable", "name": "p0", "nameLocation": "5099:2:49", "nodeType": "VariableDeclaration", "scope": 10556, "src": "5085:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10543, "name": "string", "nodeType": "ElementaryTypeName", "src": "5085:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "5084:18:49"}, "returnParameters": {"id": 10546, "nodeType": "ParameterList", "parameters": [], "src": "5117:0:49"}, "scope": 18025, "src": "5072:112:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10569, "nodeType": "Block", "src": "5223:65:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c29", "id": 10564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5267:11:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7", "typeString": "literal_string \"log(bool)\""}, "value": "log(bool)"}, {"id": 10565, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10558, "src": "5280:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7", "typeString": "literal_string \"log(bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 10562, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5243:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10563, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5247:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "5243:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10566, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5243:40:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10561, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "5227:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10567, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5227:57:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10568, "nodeType": "ExpressionStatement", "src": "5227:57:49"}]}, "id": 10570, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "5196:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10559, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10558, "mutability": "mutable", "name": "p0", "nameLocation": "5205:2:49", "nodeType": "VariableDeclaration", "scope": 10570, "src": "5200:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10557, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5200:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "5199:9:49"}, "returnParameters": {"id": 10560, "nodeType": "ParameterList", "parameters": [], "src": "5223:0:49"}, "scope": 18025, "src": "5187:101:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10583, "nodeType": "Block", "src": "5330:68:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f67286164647265737329", "id": 10578, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5374:14:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428", "typeString": "literal_string \"log(address)\""}, "value": "log(address)"}, {"id": 10579, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10572, "src": "5390:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428", "typeString": "literal_string \"log(address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 10576, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5350:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10577, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5354:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "5350:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10580, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5350:43:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10575, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "5334:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10581, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5334:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10582, "nodeType": "ExpressionStatement", "src": "5334:60:49"}]}, "id": 10584, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "5300:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10573, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10572, "mutability": "mutable", "name": "p0", "nameLocation": "5312:2:49", "nodeType": "VariableDeclaration", "scope": 10584, "src": "5304:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10571, "name": "address", "nodeType": "ElementaryTypeName", "src": "5304:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "5303:12:49"}, "returnParameters": {"id": 10574, "nodeType": "ParameterList", "parameters": [], "src": "5330:0:49"}, "scope": 18025, "src": "5291:107:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10600, "nodeType": "Block", "src": "5452:80:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e7432353629", "id": 10594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5496:22:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5", "typeString": "literal_string \"log(uint256,uint256)\""}, "value": "log(uint256,uint256)"}, {"id": 10595, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10586, "src": "5520:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10596, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10588, "src": "5524:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5", "typeString": "literal_string \"log(uint256,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 10592, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5472:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10593, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5476:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "5472:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10597, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5472:55:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10591, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "5456:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10598, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5456:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10599, "nodeType": "ExpressionStatement", "src": "5456:72:49"}]}, "id": 10601, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "5410:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10589, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10586, "mutability": "mutable", "name": "p0", "nameLocation": "5422:2:49", "nodeType": "VariableDeclaration", "scope": 10601, "src": "5414:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10585, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5414:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10588, "mutability": "mutable", "name": "p1", "nameLocation": "5434:2:49", "nodeType": "VariableDeclaration", "scope": 10601, "src": "5426:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10587, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5426:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5413:24:49"}, "returnParameters": {"id": 10590, "nodeType": "ParameterList", "parameters": [], "src": "5452:0:49"}, "scope": 18025, "src": "5401:131:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10617, "nodeType": "Block", "src": "5592:79:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e6729", "id": 10611, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5636:21:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3", "typeString": "literal_string \"log(uint256,string)\""}, "value": "log(uint256,string)"}, {"id": 10612, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10603, "src": "5659:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10613, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10605, "src": "5663:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3", "typeString": "literal_string \"log(uint256,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 10609, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5612:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10610, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5616:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "5612:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10614, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5612:54:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10608, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "5596:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10615, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5596:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10616, "nodeType": "ExpressionStatement", "src": "5596:71:49"}]}, "id": 10618, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "5544:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10606, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10603, "mutability": "mutable", "name": "p0", "nameLocation": "5556:2:49", "nodeType": "VariableDeclaration", "scope": 10618, "src": "5548:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10602, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5548:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10605, "mutability": "mutable", "name": "p1", "nameLocation": "5574:2:49", "nodeType": "VariableDeclaration", "scope": 10618, "src": "5560:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10604, "name": "string", "nodeType": "ElementaryTypeName", "src": "5560:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "5547:30:49"}, "returnParameters": {"id": 10607, "nodeType": "ParameterList", "parameters": [], "src": "5592:0:49"}, "scope": 18025, "src": "5535:136:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10634, "nodeType": "Block", "src": "5722:77:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c29", "id": 10628, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5766:19:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2", "typeString": "literal_string \"log(uint256,bool)\""}, "value": "log(uint256,bool)"}, {"id": 10629, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10620, "src": "5787:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10630, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10622, "src": "5791:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2", "typeString": "literal_string \"log(uint256,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 10626, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5742:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10627, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5746:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "5742:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10631, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5742:52:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10625, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "5726:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10632, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5726:69:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10633, "nodeType": "ExpressionStatement", "src": "5726:69:49"}]}, "id": 10635, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "5683:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10623, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10620, "mutability": "mutable", "name": "p0", "nameLocation": "5695:2:49", "nodeType": "VariableDeclaration", "scope": 10635, "src": "5687:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10619, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5687:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10622, "mutability": "mutable", "name": "p1", "nameLocation": "5704:2:49", "nodeType": "VariableDeclaration", "scope": 10635, "src": "5699:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10621, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5699:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "5686:21:49"}, "returnParameters": {"id": 10624, "nodeType": "ParameterList", "parameters": [], "src": "5722:0:49"}, "scope": 18025, "src": "5674:125:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10651, "nodeType": "Block", "src": "5853:80:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c6164647265737329", "id": 10645, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5897:22:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27", "typeString": "literal_string \"log(uint256,address)\""}, "value": "log(uint256,address)"}, {"id": 10646, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10637, "src": "5921:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10647, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10639, "src": "5925:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27", "typeString": "literal_string \"log(uint256,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 10643, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5873:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10644, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5877:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "5873:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10648, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5873:55:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10642, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "5857:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10649, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5857:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10650, "nodeType": "ExpressionStatement", "src": "5857:72:49"}]}, "id": 10652, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "5811:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10640, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10637, "mutability": "mutable", "name": "p0", "nameLocation": "5823:2:49", "nodeType": "VariableDeclaration", "scope": 10652, "src": "5815:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10636, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5815:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10639, "mutability": "mutable", "name": "p1", "nameLocation": "5835:2:49", "nodeType": "VariableDeclaration", "scope": 10652, "src": "5827:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10638, "name": "address", "nodeType": "ElementaryTypeName", "src": "5827:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "5814:24:49"}, "returnParameters": {"id": 10641, "nodeType": "ParameterList", "parameters": [], "src": "5853:0:49"}, "scope": 18025, "src": "5802:131:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10668, "nodeType": "Block", "src": "5993:79:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e7432353629", "id": 10662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6037:21:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e", "typeString": "literal_string \"log(string,uint256)\""}, "value": "log(string,uint256)"}, {"id": 10663, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10654, "src": "6060:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 10664, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10656, "src": "6064:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e", "typeString": "literal_string \"log(string,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 10660, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6013:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10661, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6017:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "6013:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10665, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6013:54:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10659, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "5997:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10666, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5997:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10667, "nodeType": "ExpressionStatement", "src": "5997:71:49"}]}, "id": 10669, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "5945:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10657, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10654, "mutability": "mutable", "name": "p0", "nameLocation": "5963:2:49", "nodeType": "VariableDeclaration", "scope": 10669, "src": "5949:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10653, "name": "string", "nodeType": "ElementaryTypeName", "src": "5949:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 10656, "mutability": "mutable", "name": "p1", "nameLocation": "5975:2:49", "nodeType": "VariableDeclaration", "scope": 10669, "src": "5967:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10655, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5967:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "5948:30:49"}, "returnParameters": {"id": 10658, "nodeType": "ParameterList", "parameters": [], "src": "5993:0:49"}, "scope": 18025, "src": "5936:136:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10685, "nodeType": "Block", "src": "6138:78:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e6729", "id": 10679, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6182:20:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac", "typeString": "literal_string \"log(string,string)\""}, "value": "log(string,string)"}, {"id": 10680, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10671, "src": "6204:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 10681, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10673, "src": "6208:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac", "typeString": "literal_string \"log(string,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 10677, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6158:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10678, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6162:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "6158:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10682, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6158:53:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10676, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "6142:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10683, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6142:70:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10684, "nodeType": "ExpressionStatement", "src": "6142:70:49"}]}, "id": 10686, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "6084:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10674, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10671, "mutability": "mutable", "name": "p0", "nameLocation": "6102:2:49", "nodeType": "VariableDeclaration", "scope": 10686, "src": "6088:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10670, "name": "string", "nodeType": "ElementaryTypeName", "src": "6088:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 10673, "mutability": "mutable", "name": "p1", "nameLocation": "6120:2:49", "nodeType": "VariableDeclaration", "scope": 10686, "src": "6106:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10672, "name": "string", "nodeType": "ElementaryTypeName", "src": "6106:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "6087:36:49"}, "returnParameters": {"id": 10675, "nodeType": "ParameterList", "parameters": [], "src": "6138:0:49"}, "scope": 18025, "src": "6075:141:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10702, "nodeType": "Block", "src": "6273:76:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c29", "id": 10696, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6317:18:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870", "typeString": "literal_string \"log(string,bool)\""}, "value": "log(string,bool)"}, {"id": 10697, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10688, "src": "6337:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 10698, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10690, "src": "6341:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870", "typeString": "literal_string \"log(string,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 10694, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6293:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10695, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6297:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "6293:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10699, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6293:51:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10693, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "6277:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10700, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6277:68:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10701, "nodeType": "ExpressionStatement", "src": "6277:68:49"}]}, "id": 10703, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "6228:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10691, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10688, "mutability": "mutable", "name": "p0", "nameLocation": "6246:2:49", "nodeType": "VariableDeclaration", "scope": 10703, "src": "6232:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10687, "name": "string", "nodeType": "ElementaryTypeName", "src": "6232:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 10690, "mutability": "mutable", "name": "p1", "nameLocation": "6255:2:49", "nodeType": "VariableDeclaration", "scope": 10703, "src": "6250:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10689, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6250:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "6231:27:49"}, "returnParameters": {"id": 10692, "nodeType": "ParameterList", "parameters": [], "src": "6273:0:49"}, "scope": 18025, "src": "6219:130:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10719, "nodeType": "Block", "src": "6409:79:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c6164647265737329", "id": 10713, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6453:21:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72", "typeString": "literal_string \"log(string,address)\""}, "value": "log(string,address)"}, {"id": 10714, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10705, "src": "6476:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 10715, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10707, "src": "6480:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72", "typeString": "literal_string \"log(string,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 10711, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6429:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10712, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6433:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "6429:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10716, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6429:54:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10710, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "6413:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10717, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6413:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10718, "nodeType": "ExpressionStatement", "src": "6413:71:49"}]}, "id": 10720, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "6361:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10708, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10705, "mutability": "mutable", "name": "p0", "nameLocation": "6379:2:49", "nodeType": "VariableDeclaration", "scope": 10720, "src": "6365:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10704, "name": "string", "nodeType": "ElementaryTypeName", "src": "6365:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 10707, "mutability": "mutable", "name": "p1", "nameLocation": "6391:2:49", "nodeType": "VariableDeclaration", "scope": 10720, "src": "6383:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10706, "name": "address", "nodeType": "ElementaryTypeName", "src": "6383:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "6364:30:49"}, "returnParameters": {"id": 10709, "nodeType": "ParameterList", "parameters": [], "src": "6409:0:49"}, "scope": 18025, "src": "6352:136:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10736, "nodeType": "Block", "src": "6539:77:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e7432353629", "id": 10730, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6583:19:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7", "typeString": "literal_string \"log(bool,uint256)\""}, "value": "log(bool,uint256)"}, {"id": 10731, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10722, "src": "6604:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 10732, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10724, "src": "6608:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7", "typeString": "literal_string \"log(bool,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 10728, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6559:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10729, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6563:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "6559:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10733, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6559:52:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10727, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "6543:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10734, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6543:69:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10735, "nodeType": "ExpressionStatement", "src": "6543:69:49"}]}, "id": 10737, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "6500:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10725, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10722, "mutability": "mutable", "name": "p0", "nameLocation": "6509:2:49", "nodeType": "VariableDeclaration", "scope": 10737, "src": "6504:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10721, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6504:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 10724, "mutability": "mutable", "name": "p1", "nameLocation": "6521:2:49", "nodeType": "VariableDeclaration", "scope": 10737, "src": "6513:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10723, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6513:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "6503:21:49"}, "returnParameters": {"id": 10726, "nodeType": "ParameterList", "parameters": [], "src": "6539:0:49"}, "scope": 18025, "src": "6491:125:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10753, "nodeType": "Block", "src": "6673:76:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e6729", "id": 10747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6717:18:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84", "typeString": "literal_string \"log(bool,string)\""}, "value": "log(bool,string)"}, {"id": 10748, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10739, "src": "6737:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 10749, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10741, "src": "6741:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84", "typeString": "literal_string \"log(bool,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 10745, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6693:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10746, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6697:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "6693:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10750, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6693:51:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10744, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "6677:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10751, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6677:68:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10752, "nodeType": "ExpressionStatement", "src": "6677:68:49"}]}, "id": 10754, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "6628:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10742, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10739, "mutability": "mutable", "name": "p0", "nameLocation": "6637:2:49", "nodeType": "VariableDeclaration", "scope": 10754, "src": "6632:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10738, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6632:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 10741, "mutability": "mutable", "name": "p1", "nameLocation": "6655:2:49", "nodeType": "VariableDeclaration", "scope": 10754, "src": "6641:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10740, "name": "string", "nodeType": "ElementaryTypeName", "src": "6641:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "6631:27:49"}, "returnParameters": {"id": 10743, "nodeType": "ParameterList", "parameters": [], "src": "6673:0:49"}, "scope": 18025, "src": "6619:130:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10770, "nodeType": "Block", "src": "6797:74:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c29", "id": 10764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6841:16:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15", "typeString": "literal_string \"log(bool,bool)\""}, "value": "log(bool,bool)"}, {"id": 10765, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10756, "src": "6859:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 10766, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10758, "src": "6863:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15", "typeString": "literal_string \"log(bool,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 10762, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6817:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10763, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6821:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "6817:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10767, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6817:49:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10761, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "6801:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10768, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6801:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10769, "nodeType": "ExpressionStatement", "src": "6801:66:49"}]}, "id": 10771, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "6761:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10759, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10756, "mutability": "mutable", "name": "p0", "nameLocation": "6770:2:49", "nodeType": "VariableDeclaration", "scope": 10771, "src": "6765:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10755, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6765:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 10758, "mutability": "mutable", "name": "p1", "nameLocation": "6779:2:49", "nodeType": "VariableDeclaration", "scope": 10771, "src": "6774:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10757, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6774:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "6764:18:49"}, "returnParameters": {"id": 10760, "nodeType": "ParameterList", "parameters": [], "src": "6797:0:49"}, "scope": 18025, "src": "6752:119:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10787, "nodeType": "Block", "src": "6922:77:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c6164647265737329", "id": 10781, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6966:19:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55", "typeString": "literal_string \"log(bool,address)\""}, "value": "log(bool,address)"}, {"id": 10782, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10773, "src": "6987:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 10783, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10775, "src": "6991:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55", "typeString": "literal_string \"log(bool,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 10779, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6942:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10780, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6946:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "6942:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10784, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6942:52:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10778, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "6926:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10785, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6926:69:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10786, "nodeType": "ExpressionStatement", "src": "6926:69:49"}]}, "id": 10788, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "6883:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10776, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10773, "mutability": "mutable", "name": "p0", "nameLocation": "6892:2:49", "nodeType": "VariableDeclaration", "scope": 10788, "src": "6887:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10772, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6887:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 10775, "mutability": "mutable", "name": "p1", "nameLocation": "6904:2:49", "nodeType": "VariableDeclaration", "scope": 10788, "src": "6896:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10774, "name": "address", "nodeType": "ElementaryTypeName", "src": "6896:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "6886:21:49"}, "returnParameters": {"id": 10777, "nodeType": "ParameterList", "parameters": [], "src": "6922:0:49"}, "scope": 18025, "src": "6874:125:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10804, "nodeType": "Block", "src": "7053:80:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e7432353629", "id": 10798, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7097:22:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e", "typeString": "literal_string \"log(address,uint256)\""}, "value": "log(address,uint256)"}, {"id": 10799, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10790, "src": "7121:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 10800, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10792, "src": "7125:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e", "typeString": "literal_string \"log(address,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 10796, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "7073:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10797, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "7077:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "7073:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10801, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7073:55:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10795, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "7057:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10802, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7057:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10803, "nodeType": "ExpressionStatement", "src": "7057:72:49"}]}, "id": 10805, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "7011:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10793, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10790, "mutability": "mutable", "name": "p0", "nameLocation": "7023:2:49", "nodeType": "VariableDeclaration", "scope": 10805, "src": "7015:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10789, "name": "address", "nodeType": "ElementaryTypeName", "src": "7015:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 10792, "mutability": "mutable", "name": "p1", "nameLocation": "7035:2:49", "nodeType": "VariableDeclaration", "scope": 10805, "src": "7027:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10791, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7027:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "7014:24:49"}, "returnParameters": {"id": 10794, "nodeType": "ParameterList", "parameters": [], "src": "7053:0:49"}, "scope": 18025, "src": "7002:131:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10821, "nodeType": "Block", "src": "7193:79:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e6729", "id": 10815, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7237:21:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab", "typeString": "literal_string \"log(address,string)\""}, "value": "log(address,string)"}, {"id": 10816, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10807, "src": "7260:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 10817, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10809, "src": "7264:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab", "typeString": "literal_string \"log(address,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 10813, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "7213:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10814, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "7217:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "7213:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10818, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7213:54:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10812, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "7197:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10819, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7197:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10820, "nodeType": "ExpressionStatement", "src": "7197:71:49"}]}, "id": 10822, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "7145:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10810, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10807, "mutability": "mutable", "name": "p0", "nameLocation": "7157:2:49", "nodeType": "VariableDeclaration", "scope": 10822, "src": "7149:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10806, "name": "address", "nodeType": "ElementaryTypeName", "src": "7149:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 10809, "mutability": "mutable", "name": "p1", "nameLocation": "7175:2:49", "nodeType": "VariableDeclaration", "scope": 10822, "src": "7161:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10808, "name": "string", "nodeType": "ElementaryTypeName", "src": "7161:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "7148:30:49"}, "returnParameters": {"id": 10811, "nodeType": "ParameterList", "parameters": [], "src": "7193:0:49"}, "scope": 18025, "src": "7136:136:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10838, "nodeType": "Block", "src": "7323:77:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c29", "id": 10832, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7367:19:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b", "typeString": "literal_string \"log(address,bool)\""}, "value": "log(address,bool)"}, {"id": 10833, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10824, "src": "7388:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 10834, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10826, "src": "7392:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b", "typeString": "literal_string \"log(address,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 10830, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "7343:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10831, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "7347:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "7343:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10835, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7343:52:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10829, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "7327:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10836, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7327:69:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10837, "nodeType": "ExpressionStatement", "src": "7327:69:49"}]}, "id": 10839, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "7284:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10827, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10824, "mutability": "mutable", "name": "p0", "nameLocation": "7296:2:49", "nodeType": "VariableDeclaration", "scope": 10839, "src": "7288:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10823, "name": "address", "nodeType": "ElementaryTypeName", "src": "7288:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 10826, "mutability": "mutable", "name": "p1", "nameLocation": "7305:2:49", "nodeType": "VariableDeclaration", "scope": 10839, "src": "7300:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10825, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7300:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "7287:21:49"}, "returnParameters": {"id": 10828, "nodeType": "ParameterList", "parameters": [], "src": "7323:0:49"}, "scope": 18025, "src": "7275:125:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10855, "nodeType": "Block", "src": "7454:80:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c6164647265737329", "id": 10849, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7498:22:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161", "typeString": "literal_string \"log(address,address)\""}, "value": "log(address,address)"}, {"id": 10850, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10841, "src": "7522:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 10851, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10843, "src": "7526:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161", "typeString": "literal_string \"log(address,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 10847, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "7474:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10848, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "7478:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "7474:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10852, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7474:55:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10846, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "7458:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10853, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7458:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10854, "nodeType": "ExpressionStatement", "src": "7458:72:49"}]}, "id": 10856, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "7412:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10844, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10841, "mutability": "mutable", "name": "p0", "nameLocation": "7424:2:49", "nodeType": "VariableDeclaration", "scope": 10856, "src": "7416:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10840, "name": "address", "nodeType": "ElementaryTypeName", "src": "7416:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 10843, "mutability": "mutable", "name": "p1", "nameLocation": "7436:2:49", "nodeType": "VariableDeclaration", "scope": 10856, "src": "7428:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10842, "name": "address", "nodeType": "ElementaryTypeName", "src": "7428:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "7415:24:49"}, "returnParameters": {"id": 10845, "nodeType": "ParameterList", "parameters": [], "src": "7454:0:49"}, "scope": 18025, "src": "7403:131:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10875, "nodeType": "Block", "src": "7600:92:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c75696e7432353629", "id": 10868, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7644:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6", "typeString": "literal_string \"log(uint256,uint256,uint256)\""}, "value": "log(uint256,uint256,uint256)"}, {"id": 10869, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10858, "src": "7676:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10870, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10860, "src": "7680:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10871, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10862, "src": "7684:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6", "typeString": "literal_string \"log(uint256,uint256,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 10866, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "7620:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10867, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "7624:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "7620:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10872, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7620:67:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10865, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "7604:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10873, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7604:84:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10874, "nodeType": "ExpressionStatement", "src": "7604:84:49"}]}, "id": 10876, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "7546:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10863, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10858, "mutability": "mutable", "name": "p0", "nameLocation": "7558:2:49", "nodeType": "VariableDeclaration", "scope": 10876, "src": "7550:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10857, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7550:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10860, "mutability": "mutable", "name": "p1", "nameLocation": "7570:2:49", "nodeType": "VariableDeclaration", "scope": 10876, "src": "7562:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10859, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7562:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10862, "mutability": "mutable", "name": "p2", "nameLocation": "7582:2:49", "nodeType": "VariableDeclaration", "scope": 10876, "src": "7574:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10861, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7574:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "7549:36:49"}, "returnParameters": {"id": 10864, "nodeType": "ParameterList", "parameters": [], "src": "7600:0:49"}, "scope": 18025, "src": "7537:155:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10895, "nodeType": "Block", "src": "7764:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c737472696e6729", "id": 10888, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7808:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262", "typeString": "literal_string \"log(uint256,uint256,string)\""}, "value": "log(uint256,uint256,string)"}, {"id": 10889, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10878, "src": "7839:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10890, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10880, "src": "7843:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10891, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10882, "src": "7847:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262", "typeString": "literal_string \"log(uint256,uint256,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 10886, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "7784:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10887, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "7788:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "7784:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10892, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7784:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10885, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "7768:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10893, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7768:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10894, "nodeType": "ExpressionStatement", "src": "7768:83:49"}]}, "id": 10896, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "7704:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10883, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10878, "mutability": "mutable", "name": "p0", "nameLocation": "7716:2:49", "nodeType": "VariableDeclaration", "scope": 10896, "src": "7708:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10877, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7708:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10880, "mutability": "mutable", "name": "p1", "nameLocation": "7728:2:49", "nodeType": "VariableDeclaration", "scope": 10896, "src": "7720:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10879, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7720:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10882, "mutability": "mutable", "name": "p2", "nameLocation": "7746:2:49", "nodeType": "VariableDeclaration", "scope": 10896, "src": "7732:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10881, "name": "string", "nodeType": "ElementaryTypeName", "src": "7732:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "7707:42:49"}, "returnParameters": {"id": 10884, "nodeType": "ParameterList", "parameters": [], "src": "7764:0:49"}, "scope": 18025, "src": "7695:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10915, "nodeType": "Block", "src": "7918:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c626f6f6c29", "id": 10908, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7962:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0", "typeString": "literal_string \"log(uint256,uint256,bool)\""}, "value": "log(uint256,uint256,bool)"}, {"id": 10909, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10898, "src": "7991:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10910, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10900, "src": "7995:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10911, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10902, "src": "7999:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0", "typeString": "literal_string \"log(uint256,uint256,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 10906, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "7938:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10907, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "7942:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "7938:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10912, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7938:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10905, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "7922:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10913, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7922:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10914, "nodeType": "ExpressionStatement", "src": "7922:81:49"}]}, "id": 10916, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "7867:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10903, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10898, "mutability": "mutable", "name": "p0", "nameLocation": "7879:2:49", "nodeType": "VariableDeclaration", "scope": 10916, "src": "7871:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10897, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7871:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10900, "mutability": "mutable", "name": "p1", "nameLocation": "7891:2:49", "nodeType": "VariableDeclaration", "scope": 10916, "src": "7883:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10899, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7883:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10902, "mutability": "mutable", "name": "p2", "nameLocation": "7900:2:49", "nodeType": "VariableDeclaration", "scope": 10916, "src": "7895:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10901, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7895:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "7870:33:49"}, "returnParameters": {"id": 10904, "nodeType": "ParameterList", "parameters": [], "src": "7918:0:49"}, "scope": 18025, "src": "7858:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10935, "nodeType": "Block", "src": "8073:92:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c6164647265737329", "id": 10928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8117:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1", "typeString": "literal_string \"log(uint256,uint256,address)\""}, "value": "log(uint256,uint256,address)"}, {"id": 10929, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10918, "src": "8149:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10930, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10920, "src": "8153:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10931, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10922, "src": "8157:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1", "typeString": "literal_string \"log(uint256,uint256,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 10926, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "8093:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10927, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "8097:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "8093:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10932, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8093:67:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10925, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "8077:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10933, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8077:84:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10934, "nodeType": "ExpressionStatement", "src": "8077:84:49"}]}, "id": 10936, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "8019:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10923, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10918, "mutability": "mutable", "name": "p0", "nameLocation": "8031:2:49", "nodeType": "VariableDeclaration", "scope": 10936, "src": "8023:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10917, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8023:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10920, "mutability": "mutable", "name": "p1", "nameLocation": "8043:2:49", "nodeType": "VariableDeclaration", "scope": 10936, "src": "8035:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10919, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8035:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10922, "mutability": "mutable", "name": "p2", "nameLocation": "8055:2:49", "nodeType": "VariableDeclaration", "scope": 10936, "src": "8047:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 10921, "name": "address", "nodeType": "ElementaryTypeName", "src": "8047:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "8022:36:49"}, "returnParameters": {"id": 10924, "nodeType": "ParameterList", "parameters": [], "src": "8073:0:49"}, "scope": 18025, "src": "8010:155:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10955, "nodeType": "Block", "src": "8237:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c75696e7432353629", "id": 10948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8281:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0", "typeString": "literal_string \"log(uint256,string,uint256)\""}, "value": "log(uint256,string,uint256)"}, {"id": 10949, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10938, "src": "8312:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10950, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10940, "src": "8316:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 10951, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10942, "src": "8320:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0", "typeString": "literal_string \"log(uint256,string,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 10946, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "8257:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10947, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "8261:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "8257:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10952, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8257:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10945, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "8241:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10953, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8241:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10954, "nodeType": "ExpressionStatement", "src": "8241:83:49"}]}, "id": 10956, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "8177:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10943, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10938, "mutability": "mutable", "name": "p0", "nameLocation": "8189:2:49", "nodeType": "VariableDeclaration", "scope": 10956, "src": "8181:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10937, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8181:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10940, "mutability": "mutable", "name": "p1", "nameLocation": "8207:2:49", "nodeType": "VariableDeclaration", "scope": 10956, "src": "8193:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10939, "name": "string", "nodeType": "ElementaryTypeName", "src": "8193:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 10942, "mutability": "mutable", "name": "p2", "nameLocation": "8219:2:49", "nodeType": "VariableDeclaration", "scope": 10956, "src": "8211:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10941, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8211:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "8180:42:49"}, "returnParameters": {"id": 10944, "nodeType": "ParameterList", "parameters": [], "src": "8237:0:49"}, "scope": 18025, "src": "8168:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10975, "nodeType": "Block", "src": "8406:90:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c737472696e6729", "id": 10968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8450:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35", "typeString": "literal_string \"log(uint256,string,string)\""}, "value": "log(uint256,string,string)"}, {"id": 10969, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10958, "src": "8480:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10970, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10960, "src": "8484:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 10971, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10962, "src": "8488:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35", "typeString": "literal_string \"log(uint256,string,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 10966, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "8426:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10967, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "8430:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "8426:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10972, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8426:65:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10965, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "8410:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10973, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8410:82:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10974, "nodeType": "ExpressionStatement", "src": "8410:82:49"}]}, "id": 10976, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "8340:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10963, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10958, "mutability": "mutable", "name": "p0", "nameLocation": "8352:2:49", "nodeType": "VariableDeclaration", "scope": 10976, "src": "8344:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10957, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8344:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10960, "mutability": "mutable", "name": "p1", "nameLocation": "8370:2:49", "nodeType": "VariableDeclaration", "scope": 10976, "src": "8356:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10959, "name": "string", "nodeType": "ElementaryTypeName", "src": "8356:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 10962, "mutability": "mutable", "name": "p2", "nameLocation": "8388:2:49", "nodeType": "VariableDeclaration", "scope": 10976, "src": "8374:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10961, "name": "string", "nodeType": "ElementaryTypeName", "src": "8374:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "8343:48:49"}, "returnParameters": {"id": 10964, "nodeType": "ParameterList", "parameters": [], "src": "8406:0:49"}, "scope": 18025, "src": "8331:165:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 10995, "nodeType": "Block", "src": "8565:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c626f6f6c29", "id": 10988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8609:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a", "typeString": "literal_string \"log(uint256,string,bool)\""}, "value": "log(uint256,string,bool)"}, {"id": 10989, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10978, "src": "8637:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 10990, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10980, "src": "8641:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 10991, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10982, "src": "8645:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a", "typeString": "literal_string \"log(uint256,string,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 10986, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "8585:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 10987, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "8589:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "8585:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 10992, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8585:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 10985, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "8569:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 10993, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8569:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 10994, "nodeType": "ExpressionStatement", "src": "8569:80:49"}]}, "id": 10996, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "8508:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 10983, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10978, "mutability": "mutable", "name": "p0", "nameLocation": "8520:2:49", "nodeType": "VariableDeclaration", "scope": 10996, "src": "8512:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10977, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8512:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 10980, "mutability": "mutable", "name": "p1", "nameLocation": "8538:2:49", "nodeType": "VariableDeclaration", "scope": 10996, "src": "8524:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10979, "name": "string", "nodeType": "ElementaryTypeName", "src": "8524:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 10982, "mutability": "mutable", "name": "p2", "nameLocation": "8547:2:49", "nodeType": "VariableDeclaration", "scope": 10996, "src": "8542:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 10981, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8542:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "8511:39:49"}, "returnParameters": {"id": 10984, "nodeType": "ParameterList", "parameters": [], "src": "8565:0:49"}, "scope": 18025, "src": "8499:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11015, "nodeType": "Block", "src": "8725:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c6164647265737329", "id": 11008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8769:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2", "typeString": "literal_string \"log(uint256,string,address)\""}, "value": "log(uint256,string,address)"}, {"id": 11009, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10998, "src": "8800:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11010, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11000, "src": "8804:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11011, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11002, "src": "8808:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2", "typeString": "literal_string \"log(uint256,string,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11006, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "8745:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11007, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "8749:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "8745:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11012, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8745:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11005, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "8729:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11013, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8729:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11014, "nodeType": "ExpressionStatement", "src": "8729:83:49"}]}, "id": 11016, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "8665:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11003, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 10998, "mutability": "mutable", "name": "p0", "nameLocation": "8677:2:49", "nodeType": "VariableDeclaration", "scope": 11016, "src": "8669:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 10997, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8669:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11000, "mutability": "mutable", "name": "p1", "nameLocation": "8695:2:49", "nodeType": "VariableDeclaration", "scope": 11016, "src": "8681:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 10999, "name": "string", "nodeType": "ElementaryTypeName", "src": "8681:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11002, "mutability": "mutable", "name": "p2", "nameLocation": "8707:2:49", "nodeType": "VariableDeclaration", "scope": 11016, "src": "8699:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11001, "name": "address", "nodeType": "ElementaryTypeName", "src": "8699:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "8668:42:49"}, "returnParameters": {"id": 11004, "nodeType": "ParameterList", "parameters": [], "src": "8725:0:49"}, "scope": 18025, "src": "8656:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11035, "nodeType": "Block", "src": "8879:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c75696e7432353629", "id": 11028, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8923:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1", "typeString": "literal_string \"log(uint256,bool,uint256)\""}, "value": "log(uint256,bool,uint256)"}, {"id": 11029, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11018, "src": "8952:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11030, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11020, "src": "8956:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11031, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11022, "src": "8960:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1", "typeString": "literal_string \"log(uint256,bool,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11026, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "8899:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11027, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "8903:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "8899:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11032, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8899:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11025, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "8883:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11033, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8883:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11034, "nodeType": "ExpressionStatement", "src": "8883:81:49"}]}, "id": 11036, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "8828:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11023, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11018, "mutability": "mutable", "name": "p0", "nameLocation": "8840:2:49", "nodeType": "VariableDeclaration", "scope": 11036, "src": "8832:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11017, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8832:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11020, "mutability": "mutable", "name": "p1", "nameLocation": "8849:2:49", "nodeType": "VariableDeclaration", "scope": 11036, "src": "8844:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11019, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8844:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11022, "mutability": "mutable", "name": "p2", "nameLocation": "8861:2:49", "nodeType": "VariableDeclaration", "scope": 11036, "src": "8853:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11021, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8853:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "8831:33:49"}, "returnParameters": {"id": 11024, "nodeType": "ParameterList", "parameters": [], "src": "8879:0:49"}, "scope": 18025, "src": "8819:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11055, "nodeType": "Block", "src": "9037:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c737472696e6729", "id": 11048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9081:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df", "typeString": "literal_string \"log(uint256,bool,string)\""}, "value": "log(uint256,bool,string)"}, {"id": 11049, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11038, "src": "9109:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11050, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11040, "src": "9113:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11051, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11042, "src": "9117:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df", "typeString": "literal_string \"log(uint256,bool,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11046, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9057:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11047, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9061:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "9057:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11052, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9057:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11045, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "9041:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11053, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9041:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11054, "nodeType": "ExpressionStatement", "src": "9041:80:49"}]}, "id": 11056, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "8980:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11043, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11038, "mutability": "mutable", "name": "p0", "nameLocation": "8992:2:49", "nodeType": "VariableDeclaration", "scope": 11056, "src": "8984:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11037, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8984:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11040, "mutability": "mutable", "name": "p1", "nameLocation": "9001:2:49", "nodeType": "VariableDeclaration", "scope": 11056, "src": "8996:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11039, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8996:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11042, "mutability": "mutable", "name": "p2", "nameLocation": "9019:2:49", "nodeType": "VariableDeclaration", "scope": 11056, "src": "9005:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11041, "name": "string", "nodeType": "ElementaryTypeName", "src": "9005:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "8983:39:49"}, "returnParameters": {"id": 11044, "nodeType": "ParameterList", "parameters": [], "src": "9037:0:49"}, "scope": 18025, "src": "8971:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11075, "nodeType": "Block", "src": "9185:86:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c626f6f6c29", "id": 11068, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9229:24:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6", "typeString": "literal_string \"log(uint256,bool,bool)\""}, "value": "log(uint256,bool,bool)"}, {"id": 11069, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11058, "src": "9255:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11070, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11060, "src": "9259:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11071, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11062, "src": "9263:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6", "typeString": "literal_string \"log(uint256,bool,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11066, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9205:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11067, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9209:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "9205:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11072, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9205:61:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11065, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "9189:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11073, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9189:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11074, "nodeType": "ExpressionStatement", "src": "9189:78:49"}]}, "id": 11076, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "9137:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11063, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11058, "mutability": "mutable", "name": "p0", "nameLocation": "9149:2:49", "nodeType": "VariableDeclaration", "scope": 11076, "src": "9141:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11057, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9141:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11060, "mutability": "mutable", "name": "p1", "nameLocation": "9158:2:49", "nodeType": "VariableDeclaration", "scope": 11076, "src": "9153:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11059, "name": "bool", "nodeType": "ElementaryTypeName", "src": "9153:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11062, "mutability": "mutable", "name": "p2", "nameLocation": "9167:2:49", "nodeType": "VariableDeclaration", "scope": 11076, "src": "9162:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11061, "name": "bool", "nodeType": "ElementaryTypeName", "src": "9162:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "9140:30:49"}, "returnParameters": {"id": 11064, "nodeType": "ParameterList", "parameters": [], "src": "9185:0:49"}, "scope": 18025, "src": "9128:143:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11095, "nodeType": "Block", "src": "9334:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c6164647265737329", "id": 11088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9378:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99", "typeString": "literal_string \"log(uint256,bool,address)\""}, "value": "log(uint256,bool,address)"}, {"id": 11089, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "9407:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11090, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11080, "src": "9411:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11091, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11082, "src": "9415:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99", "typeString": "literal_string \"log(uint256,bool,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11086, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9354:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11087, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9358:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "9354:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11092, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9354:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11085, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "9338:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11093, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9338:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11094, "nodeType": "ExpressionStatement", "src": "9338:81:49"}]}, "id": 11096, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "9283:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11083, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11078, "mutability": "mutable", "name": "p0", "nameLocation": "9295:2:49", "nodeType": "VariableDeclaration", "scope": 11096, "src": "9287:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11077, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9287:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11080, "mutability": "mutable", "name": "p1", "nameLocation": "9304:2:49", "nodeType": "VariableDeclaration", "scope": 11096, "src": "9299:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11079, "name": "bool", "nodeType": "ElementaryTypeName", "src": "9299:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11082, "mutability": "mutable", "name": "p2", "nameLocation": "9316:2:49", "nodeType": "VariableDeclaration", "scope": 11096, "src": "9308:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11081, "name": "address", "nodeType": "ElementaryTypeName", "src": "9308:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "9286:33:49"}, "returnParameters": {"id": 11084, "nodeType": "ParameterList", "parameters": [], "src": "9334:0:49"}, "scope": 18025, "src": "9274:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11115, "nodeType": "Block", "src": "9489:92:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c75696e7432353629", "id": 11108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9533:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae", "typeString": "literal_string \"log(uint256,address,uint256)\""}, "value": "log(uint256,address,uint256)"}, {"id": 11109, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11098, "src": "9565:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11110, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11100, "src": "9569:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11111, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11102, "src": "9573:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae", "typeString": "literal_string \"log(uint256,address,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11106, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9509:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11107, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9513:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "9509:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11112, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9509:67:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11105, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "9493:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11113, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9493:84:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11114, "nodeType": "ExpressionStatement", "src": "9493:84:49"}]}, "id": 11116, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "9435:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11103, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11098, "mutability": "mutable", "name": "p0", "nameLocation": "9447:2:49", "nodeType": "VariableDeclaration", "scope": 11116, "src": "9439:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11097, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9439:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11100, "mutability": "mutable", "name": "p1", "nameLocation": "9459:2:49", "nodeType": "VariableDeclaration", "scope": 11116, "src": "9451:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11099, "name": "address", "nodeType": "ElementaryTypeName", "src": "9451:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11102, "mutability": "mutable", "name": "p2", "nameLocation": "9471:2:49", "nodeType": "VariableDeclaration", "scope": 11116, "src": "9463:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11101, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9463:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "9438:36:49"}, "returnParameters": {"id": 11104, "nodeType": "ParameterList", "parameters": [], "src": "9489:0:49"}, "scope": 18025, "src": "9426:155:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11135, "nodeType": "Block", "src": "9653:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c737472696e6729", "id": 11128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9697:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c", "typeString": "literal_string \"log(uint256,address,string)\""}, "value": "log(uint256,address,string)"}, {"id": 11129, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11118, "src": "9728:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11130, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11120, "src": "9732:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11131, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11122, "src": "9736:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c", "typeString": "literal_string \"log(uint256,address,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11126, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9673:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11127, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9677:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "9673:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11132, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9673:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11125, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "9657:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11133, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9657:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11134, "nodeType": "ExpressionStatement", "src": "9657:83:49"}]}, "id": 11136, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "9593:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11123, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11118, "mutability": "mutable", "name": "p0", "nameLocation": "9605:2:49", "nodeType": "VariableDeclaration", "scope": 11136, "src": "9597:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11117, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9597:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11120, "mutability": "mutable", "name": "p1", "nameLocation": "9617:2:49", "nodeType": "VariableDeclaration", "scope": 11136, "src": "9609:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11119, "name": "address", "nodeType": "ElementaryTypeName", "src": "9609:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11122, "mutability": "mutable", "name": "p2", "nameLocation": "9635:2:49", "nodeType": "VariableDeclaration", "scope": 11136, "src": "9621:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11121, "name": "string", "nodeType": "ElementaryTypeName", "src": "9621:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "9596:42:49"}, "returnParameters": {"id": 11124, "nodeType": "ParameterList", "parameters": [], "src": "9653:0:49"}, "scope": 18025, "src": "9584:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11155, "nodeType": "Block", "src": "9807:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c626f6f6c29", "id": 11148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9851:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c", "typeString": "literal_string \"log(uint256,address,bool)\""}, "value": "log(uint256,address,bool)"}, {"id": 11149, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11138, "src": "9880:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11150, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11140, "src": "9884:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11151, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11142, "src": "9888:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c", "typeString": "literal_string \"log(uint256,address,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11146, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9827:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11147, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9831:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "9827:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11152, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9827:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11145, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "9811:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11153, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9811:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11154, "nodeType": "ExpressionStatement", "src": "9811:81:49"}]}, "id": 11156, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "9756:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11143, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11138, "mutability": "mutable", "name": "p0", "nameLocation": "9768:2:49", "nodeType": "VariableDeclaration", "scope": 11156, "src": "9760:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11137, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9760:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11140, "mutability": "mutable", "name": "p1", "nameLocation": "9780:2:49", "nodeType": "VariableDeclaration", "scope": 11156, "src": "9772:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11139, "name": "address", "nodeType": "ElementaryTypeName", "src": "9772:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11142, "mutability": "mutable", "name": "p2", "nameLocation": "9789:2:49", "nodeType": "VariableDeclaration", "scope": 11156, "src": "9784:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11141, "name": "bool", "nodeType": "ElementaryTypeName", "src": "9784:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "9759:33:49"}, "returnParameters": {"id": 11144, "nodeType": "ParameterList", "parameters": [], "src": "9807:0:49"}, "scope": 18025, "src": "9747:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11175, "nodeType": "Block", "src": "9962:92:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c6164647265737329", "id": 11168, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10006:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda", "typeString": "literal_string \"log(uint256,address,address)\""}, "value": "log(uint256,address,address)"}, {"id": 11169, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11158, "src": "10038:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11170, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11160, "src": "10042:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11171, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11162, "src": "10046:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda", "typeString": "literal_string \"log(uint256,address,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11166, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9982:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11167, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9986:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "9982:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11172, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9982:67:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11165, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "9966:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11173, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9966:84:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11174, "nodeType": "ExpressionStatement", "src": "9966:84:49"}]}, "id": 11176, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "9908:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11163, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11158, "mutability": "mutable", "name": "p0", "nameLocation": "9920:2:49", "nodeType": "VariableDeclaration", "scope": 11176, "src": "9912:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11157, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9912:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11160, "mutability": "mutable", "name": "p1", "nameLocation": "9932:2:49", "nodeType": "VariableDeclaration", "scope": 11176, "src": "9924:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11159, "name": "address", "nodeType": "ElementaryTypeName", "src": "9924:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11162, "mutability": "mutable", "name": "p2", "nameLocation": "9944:2:49", "nodeType": "VariableDeclaration", "scope": 11176, "src": "9936:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11161, "name": "address", "nodeType": "ElementaryTypeName", "src": "9936:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "9911:36:49"}, "returnParameters": {"id": 11164, "nodeType": "ParameterList", "parameters": [], "src": "9962:0:49"}, "scope": 18025, "src": "9899:155:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11195, "nodeType": "Block", "src": "10126:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c75696e7432353629", "id": 11188, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10170:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece", "typeString": "literal_string \"log(string,uint256,uint256)\""}, "value": "log(string,uint256,uint256)"}, {"id": 11189, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11178, "src": "10201:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11190, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11180, "src": "10205:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11191, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11182, "src": "10209:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece", "typeString": "literal_string \"log(string,uint256,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11186, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "10146:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11187, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "10150:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "10146:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11192, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10146:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11185, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "10130:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10130:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11194, "nodeType": "ExpressionStatement", "src": "10130:83:49"}]}, "id": 11196, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "10066:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11183, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11178, "mutability": "mutable", "name": "p0", "nameLocation": "10084:2:49", "nodeType": "VariableDeclaration", "scope": 11196, "src": "10070:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11177, "name": "string", "nodeType": "ElementaryTypeName", "src": "10070:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11180, "mutability": "mutable", "name": "p1", "nameLocation": "10096:2:49", "nodeType": "VariableDeclaration", "scope": 11196, "src": "10088:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11179, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10088:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11182, "mutability": "mutable", "name": "p2", "nameLocation": "10108:2:49", "nodeType": "VariableDeclaration", "scope": 11196, "src": "10100:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11181, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10100:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "10069:42:49"}, "returnParameters": {"id": 11184, "nodeType": "ParameterList", "parameters": [], "src": "10126:0:49"}, "scope": 18025, "src": "10057:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11215, "nodeType": "Block", "src": "10295:90:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c737472696e6729", "id": 11208, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10339:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf", "typeString": "literal_string \"log(string,uint256,string)\""}, "value": "log(string,uint256,string)"}, {"id": 11209, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "10369:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11210, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11200, "src": "10373:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11211, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11202, "src": "10377:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf", "typeString": "literal_string \"log(string,uint256,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11206, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "10315:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11207, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "10319:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "10315:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11212, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10315:65:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11205, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "10299:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11213, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10299:82:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11214, "nodeType": "ExpressionStatement", "src": "10299:82:49"}]}, "id": 11216, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "10229:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11203, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11198, "mutability": "mutable", "name": "p0", "nameLocation": "10247:2:49", "nodeType": "VariableDeclaration", "scope": 11216, "src": "10233:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11197, "name": "string", "nodeType": "ElementaryTypeName", "src": "10233:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11200, "mutability": "mutable", "name": "p1", "nameLocation": "10259:2:49", "nodeType": "VariableDeclaration", "scope": 11216, "src": "10251:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11199, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10251:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11202, "mutability": "mutable", "name": "p2", "nameLocation": "10277:2:49", "nodeType": "VariableDeclaration", "scope": 11216, "src": "10263:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11201, "name": "string", "nodeType": "ElementaryTypeName", "src": "10263:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "10232:48:49"}, "returnParameters": {"id": 11204, "nodeType": "ParameterList", "parameters": [], "src": "10295:0:49"}, "scope": 18025, "src": "10220:165:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11235, "nodeType": "Block", "src": "10454:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c626f6f6c29", "id": 11228, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10498:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e", "typeString": "literal_string \"log(string,uint256,bool)\""}, "value": "log(string,uint256,bool)"}, {"id": 11229, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11218, "src": "10526:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11230, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11220, "src": "10530:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11231, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11222, "src": "10534:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e", "typeString": "literal_string \"log(string,uint256,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11226, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "10474:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11227, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "10478:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "10474:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11232, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10474:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11225, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "10458:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11233, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10458:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11234, "nodeType": "ExpressionStatement", "src": "10458:80:49"}]}, "id": 11236, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "10397:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11223, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11218, "mutability": "mutable", "name": "p0", "nameLocation": "10415:2:49", "nodeType": "VariableDeclaration", "scope": 11236, "src": "10401:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11217, "name": "string", "nodeType": "ElementaryTypeName", "src": "10401:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11220, "mutability": "mutable", "name": "p1", "nameLocation": "10427:2:49", "nodeType": "VariableDeclaration", "scope": 11236, "src": "10419:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11219, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10419:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11222, "mutability": "mutable", "name": "p2", "nameLocation": "10436:2:49", "nodeType": "VariableDeclaration", "scope": 11236, "src": "10431:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11221, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10431:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "10400:39:49"}, "returnParameters": {"id": 11224, "nodeType": "ParameterList", "parameters": [], "src": "10454:0:49"}, "scope": 18025, "src": "10388:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11255, "nodeType": "Block", "src": "10614:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c6164647265737329", "id": 11248, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10658:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335", "typeString": "literal_string \"log(string,uint256,address)\""}, "value": "log(string,uint256,address)"}, {"id": 11249, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11238, "src": "10689:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11250, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11240, "src": "10693:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11251, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11242, "src": "10697:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335", "typeString": "literal_string \"log(string,uint256,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11246, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "10634:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11247, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "10638:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "10634:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11252, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10634:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11245, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "10618:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11253, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10618:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11254, "nodeType": "ExpressionStatement", "src": "10618:83:49"}]}, "id": 11256, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "10554:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11243, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11238, "mutability": "mutable", "name": "p0", "nameLocation": "10572:2:49", "nodeType": "VariableDeclaration", "scope": 11256, "src": "10558:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11237, "name": "string", "nodeType": "ElementaryTypeName", "src": "10558:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11240, "mutability": "mutable", "name": "p1", "nameLocation": "10584:2:49", "nodeType": "VariableDeclaration", "scope": 11256, "src": "10576:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11239, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10576:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11242, "mutability": "mutable", "name": "p2", "nameLocation": "10596:2:49", "nodeType": "VariableDeclaration", "scope": 11256, "src": "10588:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11241, "name": "address", "nodeType": "ElementaryTypeName", "src": "10588:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "10557:42:49"}, "returnParameters": {"id": 11244, "nodeType": "ParameterList", "parameters": [], "src": "10614:0:49"}, "scope": 18025, "src": "10545:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11275, "nodeType": "Block", "src": "10783:90:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c75696e7432353629", "id": 11268, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10827:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0", "typeString": "literal_string \"log(string,string,uint256)\""}, "value": "log(string,string,uint256)"}, {"id": 11269, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11258, "src": "10857:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11270, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11260, "src": "10861:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11271, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11262, "src": "10865:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0", "typeString": "literal_string \"log(string,string,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11266, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "10803:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11267, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "10807:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "10803:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11272, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10803:65:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11265, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "10787:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11273, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10787:82:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11274, "nodeType": "ExpressionStatement", "src": "10787:82:49"}]}, "id": 11276, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "10717:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11263, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11258, "mutability": "mutable", "name": "p0", "nameLocation": "10735:2:49", "nodeType": "VariableDeclaration", "scope": 11276, "src": "10721:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11257, "name": "string", "nodeType": "ElementaryTypeName", "src": "10721:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11260, "mutability": "mutable", "name": "p1", "nameLocation": "10753:2:49", "nodeType": "VariableDeclaration", "scope": 11276, "src": "10739:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11259, "name": "string", "nodeType": "ElementaryTypeName", "src": "10739:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11262, "mutability": "mutable", "name": "p2", "nameLocation": "10765:2:49", "nodeType": "VariableDeclaration", "scope": 11276, "src": "10757:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11261, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10757:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "10720:48:49"}, "returnParameters": {"id": 11264, "nodeType": "ParameterList", "parameters": [], "src": "10783:0:49"}, "scope": 18025, "src": "10708:165:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11295, "nodeType": "Block", "src": "10957:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c737472696e6729", "id": 11288, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11001:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f", "typeString": "literal_string \"log(string,string,string)\""}, "value": "log(string,string,string)"}, {"id": 11289, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11278, "src": "11030:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11290, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11280, "src": "11034:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11291, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11282, "src": "11038:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f", "typeString": "literal_string \"log(string,string,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11286, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "10977:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11287, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "10981:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "10977:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11292, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10977:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11285, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "10961:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11293, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10961:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11294, "nodeType": "ExpressionStatement", "src": "10961:81:49"}]}, "id": 11296, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "10885:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11283, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11278, "mutability": "mutable", "name": "p0", "nameLocation": "10903:2:49", "nodeType": "VariableDeclaration", "scope": 11296, "src": "10889:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11277, "name": "string", "nodeType": "ElementaryTypeName", "src": "10889:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11280, "mutability": "mutable", "name": "p1", "nameLocation": "10921:2:49", "nodeType": "VariableDeclaration", "scope": 11296, "src": "10907:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11279, "name": "string", "nodeType": "ElementaryTypeName", "src": "10907:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11282, "mutability": "mutable", "name": "p2", "nameLocation": "10939:2:49", "nodeType": "VariableDeclaration", "scope": 11296, "src": "10925:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11281, "name": "string", "nodeType": "ElementaryTypeName", "src": "10925:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "10888:54:49"}, "returnParameters": {"id": 11284, "nodeType": "ParameterList", "parameters": [], "src": "10957:0:49"}, "scope": 18025, "src": "10876:170:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11315, "nodeType": "Block", "src": "11121:87:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c29", "id": 11308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11165:25:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb", "typeString": "literal_string \"log(string,string,bool)\""}, "value": "log(string,string,bool)"}, {"id": 11309, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11298, "src": "11192:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11310, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11300, "src": "11196:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11311, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11302, "src": "11200:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb", "typeString": "literal_string \"log(string,string,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11306, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "11141:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11307, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "11145:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "11141:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11312, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11141:62:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11305, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "11125:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11313, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11125:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11314, "nodeType": "ExpressionStatement", "src": "11125:79:49"}]}, "id": 11316, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "11058:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11303, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11298, "mutability": "mutable", "name": "p0", "nameLocation": "11076:2:49", "nodeType": "VariableDeclaration", "scope": 11316, "src": "11062:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11297, "name": "string", "nodeType": "ElementaryTypeName", "src": "11062:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11300, "mutability": "mutable", "name": "p1", "nameLocation": "11094:2:49", "nodeType": "VariableDeclaration", "scope": 11316, "src": "11080:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11299, "name": "string", "nodeType": "ElementaryTypeName", "src": "11080:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11302, "mutability": "mutable", "name": "p2", "nameLocation": "11103:2:49", "nodeType": "VariableDeclaration", "scope": 11316, "src": "11098:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11301, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11098:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "11061:45:49"}, "returnParameters": {"id": 11304, "nodeType": "ParameterList", "parameters": [], "src": "11121:0:49"}, "scope": 18025, "src": "11049:159:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11335, "nodeType": "Block", "src": "11286:90:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c6164647265737329", "id": 11328, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11330:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768", "typeString": "literal_string \"log(string,string,address)\""}, "value": "log(string,string,address)"}, {"id": 11329, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11318, "src": "11360:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11330, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11320, "src": "11364:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11331, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11322, "src": "11368:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768", "typeString": "literal_string \"log(string,string,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11326, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "11306:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11327, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "11310:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "11306:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11332, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11306:65:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11325, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "11290:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11333, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11290:82:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11334, "nodeType": "ExpressionStatement", "src": "11290:82:49"}]}, "id": 11336, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "11220:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11323, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11318, "mutability": "mutable", "name": "p0", "nameLocation": "11238:2:49", "nodeType": "VariableDeclaration", "scope": 11336, "src": "11224:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11317, "name": "string", "nodeType": "ElementaryTypeName", "src": "11224:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11320, "mutability": "mutable", "name": "p1", "nameLocation": "11256:2:49", "nodeType": "VariableDeclaration", "scope": 11336, "src": "11242:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11319, "name": "string", "nodeType": "ElementaryTypeName", "src": "11242:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11322, "mutability": "mutable", "name": "p2", "nameLocation": "11268:2:49", "nodeType": "VariableDeclaration", "scope": 11336, "src": "11260:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11321, "name": "address", "nodeType": "ElementaryTypeName", "src": "11260:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "11223:48:49"}, "returnParameters": {"id": 11324, "nodeType": "ParameterList", "parameters": [], "src": "11286:0:49"}, "scope": 18025, "src": "11211:165:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11355, "nodeType": "Block", "src": "11445:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e7432353629", "id": 11348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11489:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a", "typeString": "literal_string \"log(string,bool,uint256)\""}, "value": "log(string,bool,uint256)"}, {"id": 11349, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11338, "src": "11517:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11350, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11340, "src": "11521:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11351, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11342, "src": "11525:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a", "typeString": "literal_string \"log(string,bool,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11346, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "11465:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11347, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "11469:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "11465:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11352, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11465:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11345, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "11449:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11353, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11449:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11354, "nodeType": "ExpressionStatement", "src": "11449:80:49"}]}, "id": 11356, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "11388:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11343, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11338, "mutability": "mutable", "name": "p0", "nameLocation": "11406:2:49", "nodeType": "VariableDeclaration", "scope": 11356, "src": "11392:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11337, "name": "string", "nodeType": "ElementaryTypeName", "src": "11392:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11340, "mutability": "mutable", "name": "p1", "nameLocation": "11415:2:49", "nodeType": "VariableDeclaration", "scope": 11356, "src": "11410:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11339, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11410:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11342, "mutability": "mutable", "name": "p2", "nameLocation": "11427:2:49", "nodeType": "VariableDeclaration", "scope": 11356, "src": "11419:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11341, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11419:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "11391:39:49"}, "returnParameters": {"id": 11344, "nodeType": "ParameterList", "parameters": [], "src": "11445:0:49"}, "scope": 18025, "src": "11379:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11375, "nodeType": "Block", "src": "11608:87:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e6729", "id": 11368, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11652:25:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7", "typeString": "literal_string \"log(string,bool,string)\""}, "value": "log(string,bool,string)"}, {"id": 11369, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11358, "src": "11679:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11370, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11360, "src": "11683:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11371, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11362, "src": "11687:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7", "typeString": "literal_string \"log(string,bool,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11366, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "11628:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11367, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "11632:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "11628:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11372, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11628:62:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11365, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "11612:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11373, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11612:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11374, "nodeType": "ExpressionStatement", "src": "11612:79:49"}]}, "id": 11376, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "11545:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11363, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11358, "mutability": "mutable", "name": "p0", "nameLocation": "11563:2:49", "nodeType": "VariableDeclaration", "scope": 11376, "src": "11549:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11357, "name": "string", "nodeType": "ElementaryTypeName", "src": "11549:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11360, "mutability": "mutable", "name": "p1", "nameLocation": "11572:2:49", "nodeType": "VariableDeclaration", "scope": 11376, "src": "11567:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11359, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11567:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11362, "mutability": "mutable", "name": "p2", "nameLocation": "11590:2:49", "nodeType": "VariableDeclaration", "scope": 11376, "src": "11576:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11361, "name": "string", "nodeType": "ElementaryTypeName", "src": "11576:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "11548:45:49"}, "returnParameters": {"id": 11364, "nodeType": "ParameterList", "parameters": [], "src": "11608:0:49"}, "scope": 18025, "src": "11536:159:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11395, "nodeType": "Block", "src": "11761:85:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c29", "id": 11388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11805:23:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d", "typeString": "literal_string \"log(string,bool,bool)\""}, "value": "log(string,bool,bool)"}, {"id": 11389, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11378, "src": "11830:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11390, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11380, "src": "11834:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11391, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11382, "src": "11838:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d", "typeString": "literal_string \"log(string,bool,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11386, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "11781:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11387, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "11785:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "11781:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11392, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11781:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11385, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "11765:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11393, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11765:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11394, "nodeType": "ExpressionStatement", "src": "11765:77:49"}]}, "id": 11396, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "11707:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11383, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11378, "mutability": "mutable", "name": "p0", "nameLocation": "11725:2:49", "nodeType": "VariableDeclaration", "scope": 11396, "src": "11711:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11377, "name": "string", "nodeType": "ElementaryTypeName", "src": "11711:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11380, "mutability": "mutable", "name": "p1", "nameLocation": "11734:2:49", "nodeType": "VariableDeclaration", "scope": 11396, "src": "11729:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11379, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11729:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11382, "mutability": "mutable", "name": "p2", "nameLocation": "11743:2:49", "nodeType": "VariableDeclaration", "scope": 11396, "src": "11738:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11381, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11738:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "11710:36:49"}, "returnParameters": {"id": 11384, "nodeType": "ParameterList", "parameters": [], "src": "11761:0:49"}, "scope": 18025, "src": "11698:148:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11415, "nodeType": "Block", "src": "11915:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c6164647265737329", "id": 11408, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11959:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f", "typeString": "literal_string \"log(string,bool,address)\""}, "value": "log(string,bool,address)"}, {"id": 11409, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11398, "src": "11987:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11410, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11400, "src": "11991:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11411, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11402, "src": "11995:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f", "typeString": "literal_string \"log(string,bool,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11406, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "11935:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11407, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "11939:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "11935:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11412, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11935:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11405, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "11919:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11413, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11919:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11414, "nodeType": "ExpressionStatement", "src": "11919:80:49"}]}, "id": 11416, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "11858:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11403, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11398, "mutability": "mutable", "name": "p0", "nameLocation": "11876:2:49", "nodeType": "VariableDeclaration", "scope": 11416, "src": "11862:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11397, "name": "string", "nodeType": "ElementaryTypeName", "src": "11862:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11400, "mutability": "mutable", "name": "p1", "nameLocation": "11885:2:49", "nodeType": "VariableDeclaration", "scope": 11416, "src": "11880:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11399, "name": "bool", "nodeType": "ElementaryTypeName", "src": "11880:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11402, "mutability": "mutable", "name": "p2", "nameLocation": "11897:2:49", "nodeType": "VariableDeclaration", "scope": 11416, "src": "11889:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11401, "name": "address", "nodeType": "ElementaryTypeName", "src": "11889:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "11861:39:49"}, "returnParameters": {"id": 11404, "nodeType": "ParameterList", "parameters": [], "src": "11915:0:49"}, "scope": 18025, "src": "11849:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11435, "nodeType": "Block", "src": "12075:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c75696e7432353629", "id": 11428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12119:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4", "typeString": "literal_string \"log(string,address,uint256)\""}, "value": "log(string,address,uint256)"}, {"id": 11429, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11418, "src": "12150:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11430, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11420, "src": "12154:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11431, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11422, "src": "12158:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4", "typeString": "literal_string \"log(string,address,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11426, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "12095:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11427, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "12099:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "12095:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11432, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12095:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11425, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "12079:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11433, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12079:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11434, "nodeType": "ExpressionStatement", "src": "12079:83:49"}]}, "id": 11436, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "12015:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11423, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11418, "mutability": "mutable", "name": "p0", "nameLocation": "12033:2:49", "nodeType": "VariableDeclaration", "scope": 11436, "src": "12019:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11417, "name": "string", "nodeType": "ElementaryTypeName", "src": "12019:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11420, "mutability": "mutable", "name": "p1", "nameLocation": "12045:2:49", "nodeType": "VariableDeclaration", "scope": 11436, "src": "12037:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11419, "name": "address", "nodeType": "ElementaryTypeName", "src": "12037:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11422, "mutability": "mutable", "name": "p2", "nameLocation": "12057:2:49", "nodeType": "VariableDeclaration", "scope": 11436, "src": "12049:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11421, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12049:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "12018:42:49"}, "returnParameters": {"id": 11424, "nodeType": "ParameterList", "parameters": [], "src": "12075:0:49"}, "scope": 18025, "src": "12006:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11455, "nodeType": "Block", "src": "12244:90:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c737472696e6729", "id": 11448, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12288:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634", "typeString": "literal_string \"log(string,address,string)\""}, "value": "log(string,address,string)"}, {"id": 11449, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11438, "src": "12318:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11450, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11440, "src": "12322:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11451, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11442, "src": "12326:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634", "typeString": "literal_string \"log(string,address,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11446, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "12264:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11447, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "12268:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "12264:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11452, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12264:65:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11445, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "12248:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11453, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12248:82:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11454, "nodeType": "ExpressionStatement", "src": "12248:82:49"}]}, "id": 11456, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "12178:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11443, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11438, "mutability": "mutable", "name": "p0", "nameLocation": "12196:2:49", "nodeType": "VariableDeclaration", "scope": 11456, "src": "12182:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11437, "name": "string", "nodeType": "ElementaryTypeName", "src": "12182:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11440, "mutability": "mutable", "name": "p1", "nameLocation": "12208:2:49", "nodeType": "VariableDeclaration", "scope": 11456, "src": "12200:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11439, "name": "address", "nodeType": "ElementaryTypeName", "src": "12200:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11442, "mutability": "mutable", "name": "p2", "nameLocation": "12226:2:49", "nodeType": "VariableDeclaration", "scope": 11456, "src": "12212:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11441, "name": "string", "nodeType": "ElementaryTypeName", "src": "12212:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "12181:48:49"}, "returnParameters": {"id": 11444, "nodeType": "ParameterList", "parameters": [], "src": "12244:0:49"}, "scope": 18025, "src": "12169:165:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11475, "nodeType": "Block", "src": "12403:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c29", "id": 11468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12447:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8", "typeString": "literal_string \"log(string,address,bool)\""}, "value": "log(string,address,bool)"}, {"id": 11469, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11458, "src": "12475:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11470, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11460, "src": "12479:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11471, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11462, "src": "12483:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8", "typeString": "literal_string \"log(string,address,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11466, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "12423:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11467, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "12427:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "12423:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11472, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12423:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11465, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "12407:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11473, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12407:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11474, "nodeType": "ExpressionStatement", "src": "12407:80:49"}]}, "id": 11476, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "12346:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11463, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11458, "mutability": "mutable", "name": "p0", "nameLocation": "12364:2:49", "nodeType": "VariableDeclaration", "scope": 11476, "src": "12350:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11457, "name": "string", "nodeType": "ElementaryTypeName", "src": "12350:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11460, "mutability": "mutable", "name": "p1", "nameLocation": "12376:2:49", "nodeType": "VariableDeclaration", "scope": 11476, "src": "12368:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11459, "name": "address", "nodeType": "ElementaryTypeName", "src": "12368:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11462, "mutability": "mutable", "name": "p2", "nameLocation": "12385:2:49", "nodeType": "VariableDeclaration", "scope": 11476, "src": "12380:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11461, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12380:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "12349:39:49"}, "returnParameters": {"id": 11464, "nodeType": "ParameterList", "parameters": [], "src": "12403:0:49"}, "scope": 18025, "src": "12337:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11495, "nodeType": "Block", "src": "12563:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c6164647265737329", "id": 11488, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12607:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8", "typeString": "literal_string \"log(string,address,address)\""}, "value": "log(string,address,address)"}, {"id": 11489, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11478, "src": "12638:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11490, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11480, "src": "12642:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11491, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11482, "src": "12646:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8", "typeString": "literal_string \"log(string,address,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11486, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "12583:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11487, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "12587:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "12583:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11492, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12583:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11485, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "12567:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11493, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12567:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11494, "nodeType": "ExpressionStatement", "src": "12567:83:49"}]}, "id": 11496, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "12503:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11483, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11478, "mutability": "mutable", "name": "p0", "nameLocation": "12521:2:49", "nodeType": "VariableDeclaration", "scope": 11496, "src": "12507:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11477, "name": "string", "nodeType": "ElementaryTypeName", "src": "12507:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11480, "mutability": "mutable", "name": "p1", "nameLocation": "12533:2:49", "nodeType": "VariableDeclaration", "scope": 11496, "src": "12525:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11479, "name": "address", "nodeType": "ElementaryTypeName", "src": "12525:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11482, "mutability": "mutable", "name": "p2", "nameLocation": "12545:2:49", "nodeType": "VariableDeclaration", "scope": 11496, "src": "12537:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11481, "name": "address", "nodeType": "ElementaryTypeName", "src": "12537:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "12506:42:49"}, "returnParameters": {"id": 11484, "nodeType": "ParameterList", "parameters": [], "src": "12563:0:49"}, "scope": 18025, "src": "12494:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11515, "nodeType": "Block", "src": "12717:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c75696e7432353629", "id": 11508, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12761:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28", "typeString": "literal_string \"log(bool,uint256,uint256)\""}, "value": "log(bool,uint256,uint256)"}, {"id": 11509, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11498, "src": "12790:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11510, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11500, "src": "12794:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11511, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11502, "src": "12798:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28", "typeString": "literal_string \"log(bool,uint256,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11506, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "12737:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11507, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "12741:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "12737:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11512, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12737:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11505, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "12721:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11513, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12721:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11514, "nodeType": "ExpressionStatement", "src": "12721:81:49"}]}, "id": 11516, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "12666:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11503, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11498, "mutability": "mutable", "name": "p0", "nameLocation": "12675:2:49", "nodeType": "VariableDeclaration", "scope": 11516, "src": "12670:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11497, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12670:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11500, "mutability": "mutable", "name": "p1", "nameLocation": "12687:2:49", "nodeType": "VariableDeclaration", "scope": 11516, "src": "12679:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11499, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12679:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11502, "mutability": "mutable", "name": "p2", "nameLocation": "12699:2:49", "nodeType": "VariableDeclaration", "scope": 11516, "src": "12691:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11501, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12691:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "12669:33:49"}, "returnParameters": {"id": 11504, "nodeType": "ParameterList", "parameters": [], "src": "12717:0:49"}, "scope": 18025, "src": "12657:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11535, "nodeType": "Block", "src": "12875:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c737472696e6729", "id": 11528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12919:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447", "typeString": "literal_string \"log(bool,uint256,string)\""}, "value": "log(bool,uint256,string)"}, {"id": 11529, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11518, "src": "12947:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11530, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11520, "src": "12951:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11531, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11522, "src": "12955:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447", "typeString": "literal_string \"log(bool,uint256,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11526, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "12895:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11527, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "12899:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "12895:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11532, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12895:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11525, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "12879:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11533, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12879:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11534, "nodeType": "ExpressionStatement", "src": "12879:80:49"}]}, "id": 11536, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "12818:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11523, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11518, "mutability": "mutable", "name": "p0", "nameLocation": "12827:2:49", "nodeType": "VariableDeclaration", "scope": 11536, "src": "12822:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11517, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12822:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11520, "mutability": "mutable", "name": "p1", "nameLocation": "12839:2:49", "nodeType": "VariableDeclaration", "scope": 11536, "src": "12831:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11519, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12831:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11522, "mutability": "mutable", "name": "p2", "nameLocation": "12857:2:49", "nodeType": "VariableDeclaration", "scope": 11536, "src": "12843:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11521, "name": "string", "nodeType": "ElementaryTypeName", "src": "12843:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "12821:39:49"}, "returnParameters": {"id": 11524, "nodeType": "ParameterList", "parameters": [], "src": "12875:0:49"}, "scope": 18025, "src": "12809:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11555, "nodeType": "Block", "src": "13023:86:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c626f6f6c29", "id": 11548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13067:24:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26", "typeString": "literal_string \"log(bool,uint256,bool)\""}, "value": "log(bool,uint256,bool)"}, {"id": 11549, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11538, "src": "13093:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11550, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11540, "src": "13097:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11551, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11542, "src": "13101:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26", "typeString": "literal_string \"log(bool,uint256,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11546, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "13043:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11547, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "13047:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "13043:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11552, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13043:61:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11545, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "13027:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11553, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13027:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11554, "nodeType": "ExpressionStatement", "src": "13027:78:49"}]}, "id": 11556, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "12975:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11543, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11538, "mutability": "mutable", "name": "p0", "nameLocation": "12984:2:49", "nodeType": "VariableDeclaration", "scope": 11556, "src": "12979:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11537, "name": "bool", "nodeType": "ElementaryTypeName", "src": "12979:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11540, "mutability": "mutable", "name": "p1", "nameLocation": "12996:2:49", "nodeType": "VariableDeclaration", "scope": 11556, "src": "12988:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11539, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12988:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11542, "mutability": "mutable", "name": "p2", "nameLocation": "13005:2:49", "nodeType": "VariableDeclaration", "scope": 11556, "src": "13000:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11541, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13000:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "12978:30:49"}, "returnParameters": {"id": 11544, "nodeType": "ParameterList", "parameters": [], "src": "13023:0:49"}, "scope": 18025, "src": "12966:143:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11575, "nodeType": "Block", "src": "13172:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c6164647265737329", "id": 11568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13216:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574", "typeString": "literal_string \"log(bool,uint256,address)\""}, "value": "log(bool,uint256,address)"}, {"id": 11569, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11558, "src": "13245:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11570, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11560, "src": "13249:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11571, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11562, "src": "13253:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574", "typeString": "literal_string \"log(bool,uint256,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11566, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "13192:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11567, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "13196:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "13192:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11572, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13192:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11565, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "13176:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11573, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13176:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11574, "nodeType": "ExpressionStatement", "src": "13176:81:49"}]}, "id": 11576, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "13121:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11563, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11558, "mutability": "mutable", "name": "p0", "nameLocation": "13130:2:49", "nodeType": "VariableDeclaration", "scope": 11576, "src": "13125:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11557, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13125:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11560, "mutability": "mutable", "name": "p1", "nameLocation": "13142:2:49", "nodeType": "VariableDeclaration", "scope": 11576, "src": "13134:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11559, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13134:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11562, "mutability": "mutable", "name": "p2", "nameLocation": "13154:2:49", "nodeType": "VariableDeclaration", "scope": 11576, "src": "13146:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11561, "name": "address", "nodeType": "ElementaryTypeName", "src": "13146:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "13124:33:49"}, "returnParameters": {"id": 11564, "nodeType": "ParameterList", "parameters": [], "src": "13172:0:49"}, "scope": 18025, "src": "13112:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11595, "nodeType": "Block", "src": "13330:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e7432353629", "id": 11588, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13374:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64", "typeString": "literal_string \"log(bool,string,uint256)\""}, "value": "log(bool,string,uint256)"}, {"id": 11589, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11578, "src": "13402:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11590, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11580, "src": "13406:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11591, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11582, "src": "13410:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64", "typeString": "literal_string \"log(bool,string,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11586, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "13350:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11587, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "13354:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "13350:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11592, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13350:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11585, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "13334:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11593, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13334:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11594, "nodeType": "ExpressionStatement", "src": "13334:80:49"}]}, "id": 11596, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "13273:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11583, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11578, "mutability": "mutable", "name": "p0", "nameLocation": "13282:2:49", "nodeType": "VariableDeclaration", "scope": 11596, "src": "13277:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11577, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13277:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11580, "mutability": "mutable", "name": "p1", "nameLocation": "13300:2:49", "nodeType": "VariableDeclaration", "scope": 11596, "src": "13286:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11579, "name": "string", "nodeType": "ElementaryTypeName", "src": "13286:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11582, "mutability": "mutable", "name": "p2", "nameLocation": "13312:2:49", "nodeType": "VariableDeclaration", "scope": 11596, "src": "13304:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11581, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13304:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "13276:39:49"}, "returnParameters": {"id": 11584, "nodeType": "ParameterList", "parameters": [], "src": "13330:0:49"}, "scope": 18025, "src": "13264:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11615, "nodeType": "Block", "src": "13493:87:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e6729", "id": 11608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13537:25:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102", "typeString": "literal_string \"log(bool,string,string)\""}, "value": "log(bool,string,string)"}, {"id": 11609, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11598, "src": "13564:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11610, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11600, "src": "13568:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11611, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11602, "src": "13572:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102", "typeString": "literal_string \"log(bool,string,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11606, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "13513:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11607, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "13517:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "13513:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11612, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13513:62:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11605, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "13497:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11613, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13497:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11614, "nodeType": "ExpressionStatement", "src": "13497:79:49"}]}, "id": 11616, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "13430:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11603, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11598, "mutability": "mutable", "name": "p0", "nameLocation": "13439:2:49", "nodeType": "VariableDeclaration", "scope": 11616, "src": "13434:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11597, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13434:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11600, "mutability": "mutable", "name": "p1", "nameLocation": "13457:2:49", "nodeType": "VariableDeclaration", "scope": 11616, "src": "13443:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11599, "name": "string", "nodeType": "ElementaryTypeName", "src": "13443:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11602, "mutability": "mutable", "name": "p2", "nameLocation": "13475:2:49", "nodeType": "VariableDeclaration", "scope": 11616, "src": "13461:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11601, "name": "string", "nodeType": "ElementaryTypeName", "src": "13461:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "13433:45:49"}, "returnParameters": {"id": 11604, "nodeType": "ParameterList", "parameters": [], "src": "13493:0:49"}, "scope": 18025, "src": "13421:159:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11635, "nodeType": "Block", "src": "13646:85:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c29", "id": 11628, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13690:23:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa", "typeString": "literal_string \"log(bool,string,bool)\""}, "value": "log(bool,string,bool)"}, {"id": 11629, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11618, "src": "13715:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11630, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11620, "src": "13719:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11631, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11622, "src": "13723:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa", "typeString": "literal_string \"log(bool,string,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11626, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "13666:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11627, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "13670:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "13666:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11632, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13666:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11625, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "13650:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11633, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13650:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11634, "nodeType": "ExpressionStatement", "src": "13650:77:49"}]}, "id": 11636, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "13592:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11623, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11618, "mutability": "mutable", "name": "p0", "nameLocation": "13601:2:49", "nodeType": "VariableDeclaration", "scope": 11636, "src": "13596:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11617, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13596:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11620, "mutability": "mutable", "name": "p1", "nameLocation": "13619:2:49", "nodeType": "VariableDeclaration", "scope": 11636, "src": "13605:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11619, "name": "string", "nodeType": "ElementaryTypeName", "src": "13605:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11622, "mutability": "mutable", "name": "p2", "nameLocation": "13628:2:49", "nodeType": "VariableDeclaration", "scope": 11636, "src": "13623:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11621, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13623:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "13595:36:49"}, "returnParameters": {"id": 11624, "nodeType": "ParameterList", "parameters": [], "src": "13646:0:49"}, "scope": 18025, "src": "13583:148:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11655, "nodeType": "Block", "src": "13800:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c6164647265737329", "id": 11648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13844:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79", "typeString": "literal_string \"log(bool,string,address)\""}, "value": "log(bool,string,address)"}, {"id": 11649, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11638, "src": "13872:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11650, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11640, "src": "13876:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11651, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11642, "src": "13880:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79", "typeString": "literal_string \"log(bool,string,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11646, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "13820:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11647, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "13824:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "13820:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11652, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13820:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11645, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "13804:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11653, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13804:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11654, "nodeType": "ExpressionStatement", "src": "13804:80:49"}]}, "id": 11656, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "13743:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11643, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11638, "mutability": "mutable", "name": "p0", "nameLocation": "13752:2:49", "nodeType": "VariableDeclaration", "scope": 11656, "src": "13747:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11637, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13747:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11640, "mutability": "mutable", "name": "p1", "nameLocation": "13770:2:49", "nodeType": "VariableDeclaration", "scope": 11656, "src": "13756:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11639, "name": "string", "nodeType": "ElementaryTypeName", "src": "13756:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11642, "mutability": "mutable", "name": "p2", "nameLocation": "13782:2:49", "nodeType": "VariableDeclaration", "scope": 11656, "src": "13774:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11641, "name": "address", "nodeType": "ElementaryTypeName", "src": "13774:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "13746:39:49"}, "returnParameters": {"id": 11644, "nodeType": "ParameterList", "parameters": [], "src": "13800:0:49"}, "scope": 18025, "src": "13734:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11675, "nodeType": "Block", "src": "13948:86:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e7432353629", "id": 11668, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13992:24:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211", "typeString": "literal_string \"log(bool,bool,uint256)\""}, "value": "log(bool,bool,uint256)"}, {"id": 11669, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11658, "src": "14018:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11670, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11660, "src": "14022:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11671, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11662, "src": "14026:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211", "typeString": "literal_string \"log(bool,bool,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11666, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "13968:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11667, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "13972:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "13968:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11672, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13968:61:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11665, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "13952:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11673, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13952:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11674, "nodeType": "ExpressionStatement", "src": "13952:78:49"}]}, "id": 11676, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "13900:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11663, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11658, "mutability": "mutable", "name": "p0", "nameLocation": "13909:2:49", "nodeType": "VariableDeclaration", "scope": 11676, "src": "13904:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11657, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13904:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11660, "mutability": "mutable", "name": "p1", "nameLocation": "13918:2:49", "nodeType": "VariableDeclaration", "scope": 11676, "src": "13913:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11659, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13913:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11662, "mutability": "mutable", "name": "p2", "nameLocation": "13930:2:49", "nodeType": "VariableDeclaration", "scope": 11676, "src": "13922:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11661, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13922:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "13903:30:49"}, "returnParameters": {"id": 11664, "nodeType": "ParameterList", "parameters": [], "src": "13948:0:49"}, "scope": 18025, "src": "13891:143:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11695, "nodeType": "Block", "src": "14100:85:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e6729", "id": 11688, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "14144:23:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc", "typeString": "literal_string \"log(bool,bool,string)\""}, "value": "log(bool,bool,string)"}, {"id": 11689, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11678, "src": "14169:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11690, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11680, "src": "14173:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11691, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11682, "src": "14177:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc", "typeString": "literal_string \"log(bool,bool,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11686, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "14120:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11687, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "14124:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "14120:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11692, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14120:60:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11685, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "14104:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11693, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14104:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11694, "nodeType": "ExpressionStatement", "src": "14104:77:49"}]}, "id": 11696, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "14046:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11683, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11678, "mutability": "mutable", "name": "p0", "nameLocation": "14055:2:49", "nodeType": "VariableDeclaration", "scope": 11696, "src": "14050:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11677, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14050:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11680, "mutability": "mutable", "name": "p1", "nameLocation": "14064:2:49", "nodeType": "VariableDeclaration", "scope": 11696, "src": "14059:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11679, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14059:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11682, "mutability": "mutable", "name": "p2", "nameLocation": "14082:2:49", "nodeType": "VariableDeclaration", "scope": 11696, "src": "14068:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11681, "name": "string", "nodeType": "ElementaryTypeName", "src": "14068:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "14049:36:49"}, "returnParameters": {"id": 11684, "nodeType": "ParameterList", "parameters": [], "src": "14100:0:49"}, "scope": 18025, "src": "14037:148:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11715, "nodeType": "Block", "src": "14242:83:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c29", "id": 11708, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "14286:21:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590", "typeString": "literal_string \"log(bool,bool,bool)\""}, "value": "log(bool,bool,bool)"}, {"id": 11709, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11698, "src": "14309:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11710, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11700, "src": "14313:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11711, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11702, "src": "14317:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590", "typeString": "literal_string \"log(bool,bool,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11706, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "14262:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11707, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "14266:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "14262:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11712, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14262:58:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11705, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "14246:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11713, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14246:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11714, "nodeType": "ExpressionStatement", "src": "14246:75:49"}]}, "id": 11716, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "14197:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11703, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11698, "mutability": "mutable", "name": "p0", "nameLocation": "14206:2:49", "nodeType": "VariableDeclaration", "scope": 11716, "src": "14201:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11697, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14201:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11700, "mutability": "mutable", "name": "p1", "nameLocation": "14215:2:49", "nodeType": "VariableDeclaration", "scope": 11716, "src": "14210:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11699, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14210:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11702, "mutability": "mutable", "name": "p2", "nameLocation": "14224:2:49", "nodeType": "VariableDeclaration", "scope": 11716, "src": "14219:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11701, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14219:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "14200:27:49"}, "returnParameters": {"id": 11704, "nodeType": "ParameterList", "parameters": [], "src": "14242:0:49"}, "scope": 18025, "src": "14188:137:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11735, "nodeType": "Block", "src": "14385:86:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c6164647265737329", "id": 11728, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "14429:24:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81", "typeString": "literal_string \"log(bool,bool,address)\""}, "value": "log(bool,bool,address)"}, {"id": 11729, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11718, "src": "14455:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11730, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11720, "src": "14459:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11731, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11722, "src": "14463:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81", "typeString": "literal_string \"log(bool,bool,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11726, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "14405:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11727, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "14409:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "14405:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11732, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14405:61:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11725, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "14389:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11733, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14389:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11734, "nodeType": "ExpressionStatement", "src": "14389:78:49"}]}, "id": 11736, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "14337:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11723, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11718, "mutability": "mutable", "name": "p0", "nameLocation": "14346:2:49", "nodeType": "VariableDeclaration", "scope": 11736, "src": "14341:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11717, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14341:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11720, "mutability": "mutable", "name": "p1", "nameLocation": "14355:2:49", "nodeType": "VariableDeclaration", "scope": 11736, "src": "14350:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11719, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14350:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11722, "mutability": "mutable", "name": "p2", "nameLocation": "14367:2:49", "nodeType": "VariableDeclaration", "scope": 11736, "src": "14359:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11721, "name": "address", "nodeType": "ElementaryTypeName", "src": "14359:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "14340:30:49"}, "returnParameters": {"id": 11724, "nodeType": "ParameterList", "parameters": [], "src": "14385:0:49"}, "scope": 18025, "src": "14328:143:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11755, "nodeType": "Block", "src": "14534:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e7432353629", "id": 11748, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "14578:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac", "typeString": "literal_string \"log(bool,address,uint256)\""}, "value": "log(bool,address,uint256)"}, {"id": 11749, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11738, "src": "14607:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11750, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11740, "src": "14611:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11751, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11742, "src": "14615:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac", "typeString": "literal_string \"log(bool,address,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11746, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "14554:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11747, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "14558:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "14554:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11752, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14554:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11745, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "14538:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11753, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14538:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11754, "nodeType": "ExpressionStatement", "src": "14538:81:49"}]}, "id": 11756, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "14483:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11743, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11738, "mutability": "mutable", "name": "p0", "nameLocation": "14492:2:49", "nodeType": "VariableDeclaration", "scope": 11756, "src": "14487:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11737, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14487:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11740, "mutability": "mutable", "name": "p1", "nameLocation": "14504:2:49", "nodeType": "VariableDeclaration", "scope": 11756, "src": "14496:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11739, "name": "address", "nodeType": "ElementaryTypeName", "src": "14496:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11742, "mutability": "mutable", "name": "p2", "nameLocation": "14516:2:49", "nodeType": "VariableDeclaration", "scope": 11756, "src": "14508:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11741, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14508:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "14486:33:49"}, "returnParameters": {"id": 11744, "nodeType": "ParameterList", "parameters": [], "src": "14534:0:49"}, "scope": 18025, "src": "14474:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11775, "nodeType": "Block", "src": "14692:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e6729", "id": 11768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "14736:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d", "typeString": "literal_string \"log(bool,address,string)\""}, "value": "log(bool,address,string)"}, {"id": 11769, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11758, "src": "14764:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11770, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11760, "src": "14768:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11771, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11762, "src": "14772:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d", "typeString": "literal_string \"log(bool,address,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11766, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "14712:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11767, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "14716:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "14712:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11772, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14712:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11765, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "14696:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11773, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14696:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11774, "nodeType": "ExpressionStatement", "src": "14696:80:49"}]}, "id": 11776, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "14635:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11763, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11758, "mutability": "mutable", "name": "p0", "nameLocation": "14644:2:49", "nodeType": "VariableDeclaration", "scope": 11776, "src": "14639:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11757, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14639:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11760, "mutability": "mutable", "name": "p1", "nameLocation": "14656:2:49", "nodeType": "VariableDeclaration", "scope": 11776, "src": "14648:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11759, "name": "address", "nodeType": "ElementaryTypeName", "src": "14648:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11762, "mutability": "mutable", "name": "p2", "nameLocation": "14674:2:49", "nodeType": "VariableDeclaration", "scope": 11776, "src": "14660:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11761, "name": "string", "nodeType": "ElementaryTypeName", "src": "14660:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "14638:39:49"}, "returnParameters": {"id": 11764, "nodeType": "ParameterList", "parameters": [], "src": "14692:0:49"}, "scope": 18025, "src": "14626:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11795, "nodeType": "Block", "src": "14840:86:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c29", "id": 11788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "14884:24:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908", "typeString": "literal_string \"log(bool,address,bool)\""}, "value": "log(bool,address,bool)"}, {"id": 11789, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11778, "src": "14910:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11790, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11780, "src": "14914:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11791, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11782, "src": "14918:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908", "typeString": "literal_string \"log(bool,address,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11786, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "14860:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11787, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "14864:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "14860:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11792, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14860:61:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11785, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "14844:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11793, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14844:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11794, "nodeType": "ExpressionStatement", "src": "14844:78:49"}]}, "id": 11796, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "14792:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11783, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11778, "mutability": "mutable", "name": "p0", "nameLocation": "14801:2:49", "nodeType": "VariableDeclaration", "scope": 11796, "src": "14796:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11777, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14796:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11780, "mutability": "mutable", "name": "p1", "nameLocation": "14813:2:49", "nodeType": "VariableDeclaration", "scope": 11796, "src": "14805:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11779, "name": "address", "nodeType": "ElementaryTypeName", "src": "14805:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11782, "mutability": "mutable", "name": "p2", "nameLocation": "14822:2:49", "nodeType": "VariableDeclaration", "scope": 11796, "src": "14817:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11781, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14817:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "14795:30:49"}, "returnParameters": {"id": 11784, "nodeType": "ParameterList", "parameters": [], "src": "14840:0:49"}, "scope": 18025, "src": "14783:143:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11815, "nodeType": "Block", "src": "14989:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c6164647265737329", "id": 11808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15033:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265", "typeString": "literal_string \"log(bool,address,address)\""}, "value": "log(bool,address,address)"}, {"id": 11809, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11798, "src": "15062:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11810, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11800, "src": "15066:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11811, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11802, "src": "15070:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265", "typeString": "literal_string \"log(bool,address,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11806, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "15009:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11807, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "15013:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "15009:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11812, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15009:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11805, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "14993:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11813, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14993:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11814, "nodeType": "ExpressionStatement", "src": "14993:81:49"}]}, "id": 11816, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "14938:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11803, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11798, "mutability": "mutable", "name": "p0", "nameLocation": "14947:2:49", "nodeType": "VariableDeclaration", "scope": 11816, "src": "14942:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11797, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14942:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11800, "mutability": "mutable", "name": "p1", "nameLocation": "14959:2:49", "nodeType": "VariableDeclaration", "scope": 11816, "src": "14951:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11799, "name": "address", "nodeType": "ElementaryTypeName", "src": "14951:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11802, "mutability": "mutable", "name": "p2", "nameLocation": "14971:2:49", "nodeType": "VariableDeclaration", "scope": 11816, "src": "14963:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11801, "name": "address", "nodeType": "ElementaryTypeName", "src": "14963:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "14941:33:49"}, "returnParameters": {"id": 11804, "nodeType": "ParameterList", "parameters": [], "src": "14989:0:49"}, "scope": 18025, "src": "14929:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11835, "nodeType": "Block", "src": "15144:92:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c75696e7432353629", "id": 11828, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15188:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76", "typeString": "literal_string \"log(address,uint256,uint256)\""}, "value": "log(address,uint256,uint256)"}, {"id": 11829, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11818, "src": "15220:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11830, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11820, "src": "15224:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11831, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11822, "src": "15228:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76", "typeString": "literal_string \"log(address,uint256,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11826, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "15164:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11827, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "15168:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "15164:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11832, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15164:67:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11825, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "15148:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11833, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15148:84:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11834, "nodeType": "ExpressionStatement", "src": "15148:84:49"}]}, "id": 11836, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "15090:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11823, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11818, "mutability": "mutable", "name": "p0", "nameLocation": "15102:2:49", "nodeType": "VariableDeclaration", "scope": 11836, "src": "15094:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11817, "name": "address", "nodeType": "ElementaryTypeName", "src": "15094:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11820, "mutability": "mutable", "name": "p1", "nameLocation": "15114:2:49", "nodeType": "VariableDeclaration", "scope": 11836, "src": "15106:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11819, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15106:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11822, "mutability": "mutable", "name": "p2", "nameLocation": "15126:2:49", "nodeType": "VariableDeclaration", "scope": 11836, "src": "15118:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11821, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15118:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "15093:36:49"}, "returnParameters": {"id": 11824, "nodeType": "ParameterList", "parameters": [], "src": "15144:0:49"}, "scope": 18025, "src": "15081:155:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11855, "nodeType": "Block", "src": "15308:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c737472696e6729", "id": 11848, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15352:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d", "typeString": "literal_string \"log(address,uint256,string)\""}, "value": "log(address,uint256,string)"}, {"id": 11849, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11838, "src": "15383:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11850, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11840, "src": "15387:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11851, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11842, "src": "15391:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d", "typeString": "literal_string \"log(address,uint256,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11846, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "15328:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11847, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "15332:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "15328:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11852, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15328:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11845, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "15312:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11853, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15312:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11854, "nodeType": "ExpressionStatement", "src": "15312:83:49"}]}, "id": 11856, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "15248:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11843, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11838, "mutability": "mutable", "name": "p0", "nameLocation": "15260:2:49", "nodeType": "VariableDeclaration", "scope": 11856, "src": "15252:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11837, "name": "address", "nodeType": "ElementaryTypeName", "src": "15252:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11840, "mutability": "mutable", "name": "p1", "nameLocation": "15272:2:49", "nodeType": "VariableDeclaration", "scope": 11856, "src": "15264:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11839, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15264:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11842, "mutability": "mutable", "name": "p2", "nameLocation": "15290:2:49", "nodeType": "VariableDeclaration", "scope": 11856, "src": "15276:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11841, "name": "string", "nodeType": "ElementaryTypeName", "src": "15276:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "15251:42:49"}, "returnParameters": {"id": 11844, "nodeType": "ParameterList", "parameters": [], "src": "15308:0:49"}, "scope": 18025, "src": "15239:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11875, "nodeType": "Block", "src": "15462:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c626f6f6c29", "id": 11868, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15506:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390", "typeString": "literal_string \"log(address,uint256,bool)\""}, "value": "log(address,uint256,bool)"}, {"id": 11869, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11858, "src": "15535:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11870, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11860, "src": "15539:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11871, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11862, "src": "15543:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390", "typeString": "literal_string \"log(address,uint256,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11866, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "15482:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11867, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "15486:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "15482:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11872, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15482:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11865, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "15466:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11873, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15466:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11874, "nodeType": "ExpressionStatement", "src": "15466:81:49"}]}, "id": 11876, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "15411:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11863, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11858, "mutability": "mutable", "name": "p0", "nameLocation": "15423:2:49", "nodeType": "VariableDeclaration", "scope": 11876, "src": "15415:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11857, "name": "address", "nodeType": "ElementaryTypeName", "src": "15415:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11860, "mutability": "mutable", "name": "p1", "nameLocation": "15435:2:49", "nodeType": "VariableDeclaration", "scope": 11876, "src": "15427:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11859, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15427:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11862, "mutability": "mutable", "name": "p2", "nameLocation": "15444:2:49", "nodeType": "VariableDeclaration", "scope": 11876, "src": "15439:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11861, "name": "bool", "nodeType": "ElementaryTypeName", "src": "15439:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "15414:33:49"}, "returnParameters": {"id": 11864, "nodeType": "ParameterList", "parameters": [], "src": "15462:0:49"}, "scope": 18025, "src": "15402:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11895, "nodeType": "Block", "src": "15617:92:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c6164647265737329", "id": 11888, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15661:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36", "typeString": "literal_string \"log(address,uint256,address)\""}, "value": "log(address,uint256,address)"}, {"id": 11889, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11878, "src": "15693:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11890, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11880, "src": "15697:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 11891, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11882, "src": "15701:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36", "typeString": "literal_string \"log(address,uint256,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11886, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "15637:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11887, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "15641:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "15637:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11892, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15637:67:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11885, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "15621:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11893, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15621:84:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11894, "nodeType": "ExpressionStatement", "src": "15621:84:49"}]}, "id": 11896, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "15563:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11883, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11878, "mutability": "mutable", "name": "p0", "nameLocation": "15575:2:49", "nodeType": "VariableDeclaration", "scope": 11896, "src": "15567:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11877, "name": "address", "nodeType": "ElementaryTypeName", "src": "15567:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11880, "mutability": "mutable", "name": "p1", "nameLocation": "15587:2:49", "nodeType": "VariableDeclaration", "scope": 11896, "src": "15579:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11879, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15579:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 11882, "mutability": "mutable", "name": "p2", "nameLocation": "15599:2:49", "nodeType": "VariableDeclaration", "scope": 11896, "src": "15591:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11881, "name": "address", "nodeType": "ElementaryTypeName", "src": "15591:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "15566:36:49"}, "returnParameters": {"id": 11884, "nodeType": "ParameterList", "parameters": [], "src": "15617:0:49"}, "scope": 18025, "src": "15554:155:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11915, "nodeType": "Block", "src": "15781:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c75696e7432353629", "id": 11908, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15825:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200", "typeString": "literal_string \"log(address,string,uint256)\""}, "value": "log(address,string,uint256)"}, {"id": 11909, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11898, "src": "15856:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11910, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11900, "src": "15860:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11911, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11902, "src": "15864:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200", "typeString": "literal_string \"log(address,string,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11906, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "15801:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11907, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "15805:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "15801:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11912, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15801:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11905, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "15785:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11913, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15785:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11914, "nodeType": "ExpressionStatement", "src": "15785:83:49"}]}, "id": 11916, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "15721:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11903, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11898, "mutability": "mutable", "name": "p0", "nameLocation": "15733:2:49", "nodeType": "VariableDeclaration", "scope": 11916, "src": "15725:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11897, "name": "address", "nodeType": "ElementaryTypeName", "src": "15725:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11900, "mutability": "mutable", "name": "p1", "nameLocation": "15751:2:49", "nodeType": "VariableDeclaration", "scope": 11916, "src": "15737:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11899, "name": "string", "nodeType": "ElementaryTypeName", "src": "15737:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11902, "mutability": "mutable", "name": "p2", "nameLocation": "15763:2:49", "nodeType": "VariableDeclaration", "scope": 11916, "src": "15755:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11901, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15755:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "15724:42:49"}, "returnParameters": {"id": 11904, "nodeType": "ParameterList", "parameters": [], "src": "15781:0:49"}, "scope": 18025, "src": "15712:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11935, "nodeType": "Block", "src": "15950:90:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c737472696e6729", "id": 11928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15994:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158", "typeString": "literal_string \"log(address,string,string)\""}, "value": "log(address,string,string)"}, {"id": 11929, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11918, "src": "16024:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11930, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11920, "src": "16028:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11931, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11922, "src": "16032:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158", "typeString": "literal_string \"log(address,string,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 11926, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "15970:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11927, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "15974:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "15970:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11932, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15970:65:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11925, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "15954:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11933, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15954:82:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11934, "nodeType": "ExpressionStatement", "src": "15954:82:49"}]}, "id": 11936, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "15884:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11923, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11918, "mutability": "mutable", "name": "p0", "nameLocation": "15896:2:49", "nodeType": "VariableDeclaration", "scope": 11936, "src": "15888:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11917, "name": "address", "nodeType": "ElementaryTypeName", "src": "15888:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11920, "mutability": "mutable", "name": "p1", "nameLocation": "15914:2:49", "nodeType": "VariableDeclaration", "scope": 11936, "src": "15900:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11919, "name": "string", "nodeType": "ElementaryTypeName", "src": "15900:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11922, "mutability": "mutable", "name": "p2", "nameLocation": "15932:2:49", "nodeType": "VariableDeclaration", "scope": 11936, "src": "15918:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11921, "name": "string", "nodeType": "ElementaryTypeName", "src": "15918:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "15887:48:49"}, "returnParameters": {"id": 11924, "nodeType": "ParameterList", "parameters": [], "src": "15950:0:49"}, "scope": 18025, "src": "15875:165:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11955, "nodeType": "Block", "src": "16109:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c29", "id": 11948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16153:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96", "typeString": "literal_string \"log(address,string,bool)\""}, "value": "log(address,string,bool)"}, {"id": 11949, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11938, "src": "16181:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11950, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11940, "src": "16185:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11951, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11942, "src": "16189:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96", "typeString": "literal_string \"log(address,string,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 11946, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "16129:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11947, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "16133:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "16129:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11952, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16129:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11945, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "16113:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11953, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16113:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11954, "nodeType": "ExpressionStatement", "src": "16113:80:49"}]}, "id": 11956, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "16052:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11943, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11938, "mutability": "mutable", "name": "p0", "nameLocation": "16064:2:49", "nodeType": "VariableDeclaration", "scope": 11956, "src": "16056:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11937, "name": "address", "nodeType": "ElementaryTypeName", "src": "16056:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11940, "mutability": "mutable", "name": "p1", "nameLocation": "16082:2:49", "nodeType": "VariableDeclaration", "scope": 11956, "src": "16068:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11939, "name": "string", "nodeType": "ElementaryTypeName", "src": "16068:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11942, "mutability": "mutable", "name": "p2", "nameLocation": "16091:2:49", "nodeType": "VariableDeclaration", "scope": 11956, "src": "16086:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11941, "name": "bool", "nodeType": "ElementaryTypeName", "src": "16086:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "16055:39:49"}, "returnParameters": {"id": 11944, "nodeType": "ParameterList", "parameters": [], "src": "16109:0:49"}, "scope": 18025, "src": "16043:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11975, "nodeType": "Block", "src": "16269:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c6164647265737329", "id": 11968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16313:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231", "typeString": "literal_string \"log(address,string,address)\""}, "value": "log(address,string,address)"}, {"id": 11969, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11958, "src": "16344:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11970, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11960, "src": "16348:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 11971, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11962, "src": "16352:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231", "typeString": "literal_string \"log(address,string,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 11966, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "16289:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11967, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "16293:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "16289:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11972, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16289:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11965, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "16273:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11973, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16273:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11974, "nodeType": "ExpressionStatement", "src": "16273:83:49"}]}, "id": 11976, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "16209:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11963, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11958, "mutability": "mutable", "name": "p0", "nameLocation": "16221:2:49", "nodeType": "VariableDeclaration", "scope": 11976, "src": "16213:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11957, "name": "address", "nodeType": "ElementaryTypeName", "src": "16213:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11960, "mutability": "mutable", "name": "p1", "nameLocation": "16239:2:49", "nodeType": "VariableDeclaration", "scope": 11976, "src": "16225:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 11959, "name": "string", "nodeType": "ElementaryTypeName", "src": "16225:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 11962, "mutability": "mutable", "name": "p2", "nameLocation": "16251:2:49", "nodeType": "VariableDeclaration", "scope": 11976, "src": "16243:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11961, "name": "address", "nodeType": "ElementaryTypeName", "src": "16243:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "16212:42:49"}, "returnParameters": {"id": 11964, "nodeType": "ParameterList", "parameters": [], "src": "16269:0:49"}, "scope": 18025, "src": "16200:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 11995, "nodeType": "Block", "src": "16423:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e7432353629", "id": 11988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16467:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9", "typeString": "literal_string \"log(address,bool,uint256)\""}, "value": "log(address,bool,uint256)"}, {"id": 11989, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11978, "src": "16496:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 11990, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11980, "src": "16500:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 11991, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11982, "src": "16504:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9", "typeString": "literal_string \"log(address,bool,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 11986, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "16443:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 11987, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "16447:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "16443:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 11992, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16443:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 11985, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "16427:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 11993, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16427:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 11994, "nodeType": "ExpressionStatement", "src": "16427:81:49"}]}, "id": 11996, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "16372:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 11983, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11978, "mutability": "mutable", "name": "p0", "nameLocation": "16384:2:49", "nodeType": "VariableDeclaration", "scope": 11996, "src": "16376:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11977, "name": "address", "nodeType": "ElementaryTypeName", "src": "16376:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 11980, "mutability": "mutable", "name": "p1", "nameLocation": "16393:2:49", "nodeType": "VariableDeclaration", "scope": 11996, "src": "16388:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11979, "name": "bool", "nodeType": "ElementaryTypeName", "src": "16388:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 11982, "mutability": "mutable", "name": "p2", "nameLocation": "16405:2:49", "nodeType": "VariableDeclaration", "scope": 11996, "src": "16397:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 11981, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16397:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "16375:33:49"}, "returnParameters": {"id": 11984, "nodeType": "ParameterList", "parameters": [], "src": "16423:0:49"}, "scope": 18025, "src": "16363:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12015, "nodeType": "Block", "src": "16581:88:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e6729", "id": 12008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16625:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750", "typeString": "literal_string \"log(address,bool,string)\""}, "value": "log(address,bool,string)"}, {"id": 12009, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11998, "src": "16653:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12010, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12000, "src": "16657:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12011, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12002, "src": "16661:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750", "typeString": "literal_string \"log(address,bool,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12006, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "16601:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12007, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "16605:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "16601:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12012, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16601:63:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12005, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "16585:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12013, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16585:80:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12014, "nodeType": "ExpressionStatement", "src": "16585:80:49"}]}, "id": 12016, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "16524:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12003, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 11998, "mutability": "mutable", "name": "p0", "nameLocation": "16536:2:49", "nodeType": "VariableDeclaration", "scope": 12016, "src": "16528:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 11997, "name": "address", "nodeType": "ElementaryTypeName", "src": "16528:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12000, "mutability": "mutable", "name": "p1", "nameLocation": "16545:2:49", "nodeType": "VariableDeclaration", "scope": 12016, "src": "16540:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 11999, "name": "bool", "nodeType": "ElementaryTypeName", "src": "16540:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12002, "mutability": "mutable", "name": "p2", "nameLocation": "16563:2:49", "nodeType": "VariableDeclaration", "scope": 12016, "src": "16549:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12001, "name": "string", "nodeType": "ElementaryTypeName", "src": "16549:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "16527:39:49"}, "returnParameters": {"id": 12004, "nodeType": "ParameterList", "parameters": [], "src": "16581:0:49"}, "scope": 18025, "src": "16515:154:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12035, "nodeType": "Block", "src": "16729:86:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c29", "id": 12028, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16773:24:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279", "typeString": "literal_string \"log(address,bool,bool)\""}, "value": "log(address,bool,bool)"}, {"id": 12029, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12018, "src": "16799:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12030, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12020, "src": "16803:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12031, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12022, "src": "16807:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279", "typeString": "literal_string \"log(address,bool,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12026, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "16749:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12027, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "16753:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "16749:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12032, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16749:61:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12025, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "16733:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12033, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16733:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12034, "nodeType": "ExpressionStatement", "src": "16733:78:49"}]}, "id": 12036, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "16681:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12023, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12018, "mutability": "mutable", "name": "p0", "nameLocation": "16693:2:49", "nodeType": "VariableDeclaration", "scope": 12036, "src": "16685:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12017, "name": "address", "nodeType": "ElementaryTypeName", "src": "16685:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12020, "mutability": "mutable", "name": "p1", "nameLocation": "16702:2:49", "nodeType": "VariableDeclaration", "scope": 12036, "src": "16697:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12019, "name": "bool", "nodeType": "ElementaryTypeName", "src": "16697:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12022, "mutability": "mutable", "name": "p2", "nameLocation": "16711:2:49", "nodeType": "VariableDeclaration", "scope": 12036, "src": "16706:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12021, "name": "bool", "nodeType": "ElementaryTypeName", "src": "16706:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "16684:30:49"}, "returnParameters": {"id": 12024, "nodeType": "ParameterList", "parameters": [], "src": "16729:0:49"}, "scope": 18025, "src": "16672:143:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12055, "nodeType": "Block", "src": "16878:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c6164647265737329", "id": 12048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16922:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d", "typeString": "literal_string \"log(address,bool,address)\""}, "value": "log(address,bool,address)"}, {"id": 12049, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12038, "src": "16951:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12050, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12040, "src": "16955:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12051, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12042, "src": "16959:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d", "typeString": "literal_string \"log(address,bool,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12046, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "16898:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12047, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "16902:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "16898:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12052, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16898:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12045, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "16882:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12053, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16882:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12054, "nodeType": "ExpressionStatement", "src": "16882:81:49"}]}, "id": 12056, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "16827:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12043, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12038, "mutability": "mutable", "name": "p0", "nameLocation": "16839:2:49", "nodeType": "VariableDeclaration", "scope": 12056, "src": "16831:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12037, "name": "address", "nodeType": "ElementaryTypeName", "src": "16831:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12040, "mutability": "mutable", "name": "p1", "nameLocation": "16848:2:49", "nodeType": "VariableDeclaration", "scope": 12056, "src": "16843:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12039, "name": "bool", "nodeType": "ElementaryTypeName", "src": "16843:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12042, "mutability": "mutable", "name": "p2", "nameLocation": "16860:2:49", "nodeType": "VariableDeclaration", "scope": 12056, "src": "16852:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12041, "name": "address", "nodeType": "ElementaryTypeName", "src": "16852:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "16830:33:49"}, "returnParameters": {"id": 12044, "nodeType": "ParameterList", "parameters": [], "src": "16878:0:49"}, "scope": 18025, "src": "16818:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12075, "nodeType": "Block", "src": "17033:92:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c75696e7432353629", "id": 12068, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17077:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4", "typeString": "literal_string \"log(address,address,uint256)\""}, "value": "log(address,address,uint256)"}, {"id": 12069, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12058, "src": "17109:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12070, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12060, "src": "17113:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12071, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12062, "src": "17117:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4", "typeString": "literal_string \"log(address,address,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12066, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "17053:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12067, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "17057:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "17053:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12072, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17053:67:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12065, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "17037:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12073, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17037:84:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12074, "nodeType": "ExpressionStatement", "src": "17037:84:49"}]}, "id": 12076, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "16979:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12063, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12058, "mutability": "mutable", "name": "p0", "nameLocation": "16991:2:49", "nodeType": "VariableDeclaration", "scope": 12076, "src": "16983:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12057, "name": "address", "nodeType": "ElementaryTypeName", "src": "16983:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12060, "mutability": "mutable", "name": "p1", "nameLocation": "17003:2:49", "nodeType": "VariableDeclaration", "scope": 12076, "src": "16995:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12059, "name": "address", "nodeType": "ElementaryTypeName", "src": "16995:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12062, "mutability": "mutable", "name": "p2", "nameLocation": "17015:2:49", "nodeType": "VariableDeclaration", "scope": 12076, "src": "17007:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12061, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17007:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "16982:36:49"}, "returnParameters": {"id": 12064, "nodeType": "ParameterList", "parameters": [], "src": "17033:0:49"}, "scope": 18025, "src": "16970:155:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12095, "nodeType": "Block", "src": "17197:91:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c737472696e6729", "id": 12088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17241:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee", "typeString": "literal_string \"log(address,address,string)\""}, "value": "log(address,address,string)"}, {"id": 12089, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12078, "src": "17272:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12090, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12080, "src": "17276:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12091, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12082, "src": "17280:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee", "typeString": "literal_string \"log(address,address,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12086, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "17217:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12087, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "17221:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "17217:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12092, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17217:66:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12085, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "17201:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12093, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17201:83:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12094, "nodeType": "ExpressionStatement", "src": "17201:83:49"}]}, "id": 12096, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "17137:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12083, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12078, "mutability": "mutable", "name": "p0", "nameLocation": "17149:2:49", "nodeType": "VariableDeclaration", "scope": 12096, "src": "17141:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12077, "name": "address", "nodeType": "ElementaryTypeName", "src": "17141:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12080, "mutability": "mutable", "name": "p1", "nameLocation": "17161:2:49", "nodeType": "VariableDeclaration", "scope": 12096, "src": "17153:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12079, "name": "address", "nodeType": "ElementaryTypeName", "src": "17153:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12082, "mutability": "mutable", "name": "p2", "nameLocation": "17179:2:49", "nodeType": "VariableDeclaration", "scope": 12096, "src": "17165:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12081, "name": "string", "nodeType": "ElementaryTypeName", "src": "17165:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "17140:42:49"}, "returnParameters": {"id": 12084, "nodeType": "ParameterList", "parameters": [], "src": "17197:0:49"}, "scope": 18025, "src": "17128:160:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12115, "nodeType": "Block", "src": "17351:89:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c29", "id": 12108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17395:27:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc", "typeString": "literal_string \"log(address,address,bool)\""}, "value": "log(address,address,bool)"}, {"id": 12109, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12098, "src": "17424:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12110, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12100, "src": "17428:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12111, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12102, "src": "17432:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc", "typeString": "literal_string \"log(address,address,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12106, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "17371:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12107, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "17375:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "17371:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12112, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17371:64:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12105, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "17355:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12113, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17355:81:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12114, "nodeType": "ExpressionStatement", "src": "17355:81:49"}]}, "id": 12116, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "17300:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12103, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12098, "mutability": "mutable", "name": "p0", "nameLocation": "17312:2:49", "nodeType": "VariableDeclaration", "scope": 12116, "src": "17304:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12097, "name": "address", "nodeType": "ElementaryTypeName", "src": "17304:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12100, "mutability": "mutable", "name": "p1", "nameLocation": "17324:2:49", "nodeType": "VariableDeclaration", "scope": 12116, "src": "17316:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12099, "name": "address", "nodeType": "ElementaryTypeName", "src": "17316:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12102, "mutability": "mutable", "name": "p2", "nameLocation": "17333:2:49", "nodeType": "VariableDeclaration", "scope": 12116, "src": "17328:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12101, "name": "bool", "nodeType": "ElementaryTypeName", "src": "17328:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "17303:33:49"}, "returnParameters": {"id": 12104, "nodeType": "ParameterList", "parameters": [], "src": "17351:0:49"}, "scope": 18025, "src": "17291:149:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12135, "nodeType": "Block", "src": "17506:92:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c6164647265737329", "id": 12128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17550:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830", "typeString": "literal_string \"log(address,address,address)\""}, "value": "log(address,address,address)"}, {"id": 12129, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12118, "src": "17582:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12130, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12120, "src": "17586:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12131, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12122, "src": "17590:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830", "typeString": "literal_string \"log(address,address,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12126, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "17526:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12127, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "17530:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "17526:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12132, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17526:67:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12125, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "17510:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12133, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17510:84:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12134, "nodeType": "ExpressionStatement", "src": "17510:84:49"}]}, "id": 12136, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "17452:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12123, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12118, "mutability": "mutable", "name": "p0", "nameLocation": "17464:2:49", "nodeType": "VariableDeclaration", "scope": 12136, "src": "17456:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12117, "name": "address", "nodeType": "ElementaryTypeName", "src": "17456:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12120, "mutability": "mutable", "name": "p1", "nameLocation": "17476:2:49", "nodeType": "VariableDeclaration", "scope": 12136, "src": "17468:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12119, "name": "address", "nodeType": "ElementaryTypeName", "src": "17468:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12122, "mutability": "mutable", "name": "p2", "nameLocation": "17488:2:49", "nodeType": "VariableDeclaration", "scope": 12136, "src": "17480:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12121, "name": "address", "nodeType": "ElementaryTypeName", "src": "17480:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "17455:36:49"}, "returnParameters": {"id": 12124, "nodeType": "ParameterList", "parameters": [], "src": "17506:0:49"}, "scope": 18025, "src": "17443:155:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12158, "nodeType": "Block", "src": "17676:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c75696e743235362c75696e7432353629", "id": 12150, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17720:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f", "typeString": "literal_string \"log(uint256,uint256,uint256,uint256)\""}, "value": "log(uint256,uint256,uint256,uint256)"}, {"id": 12151, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12138, "src": "17760:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12152, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12140, "src": "17764:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12153, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12142, "src": "17768:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12154, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12144, "src": "17772:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f", "typeString": "literal_string \"log(uint256,uint256,uint256,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12148, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "17696:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12149, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "17700:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "17696:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12155, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17696:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12147, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "17680:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12156, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17680:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12157, "nodeType": "ExpressionStatement", "src": "17680:96:49"}]}, "id": 12159, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "17610:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12145, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12138, "mutability": "mutable", "name": "p0", "nameLocation": "17622:2:49", "nodeType": "VariableDeclaration", "scope": 12159, "src": "17614:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12137, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17614:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12140, "mutability": "mutable", "name": "p1", "nameLocation": "17634:2:49", "nodeType": "VariableDeclaration", "scope": 12159, "src": "17626:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12139, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17626:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12142, "mutability": "mutable", "name": "p2", "nameLocation": "17646:2:49", "nodeType": "VariableDeclaration", "scope": 12159, "src": "17638:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12141, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17638:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12144, "mutability": "mutable", "name": "p3", "nameLocation": "17658:2:49", "nodeType": "VariableDeclaration", "scope": 12159, "src": "17650:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12143, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17650:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "17613:48:49"}, "returnParameters": {"id": 12146, "nodeType": "ParameterList", "parameters": [], "src": "17676:0:49"}, "scope": 18025, "src": "17601:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12181, "nodeType": "Block", "src": "17864:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c75696e743235362c737472696e6729", "id": 12173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17908:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef", "typeString": "literal_string \"log(uint256,uint256,uint256,string)\""}, "value": "log(uint256,uint256,uint256,string)"}, {"id": 12174, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12161, "src": "17947:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12175, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12163, "src": "17951:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12176, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12165, "src": "17955:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12177, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12167, "src": "17959:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef", "typeString": "literal_string \"log(uint256,uint256,uint256,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12171, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "17884:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12172, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "17888:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "17884:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12178, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17884:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12170, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "17868:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12179, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17868:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12180, "nodeType": "ExpressionStatement", "src": "17868:95:49"}]}, "id": 12182, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "17792:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12168, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12161, "mutability": "mutable", "name": "p0", "nameLocation": "17804:2:49", "nodeType": "VariableDeclaration", "scope": 12182, "src": "17796:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12160, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17796:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12163, "mutability": "mutable", "name": "p1", "nameLocation": "17816:2:49", "nodeType": "VariableDeclaration", "scope": 12182, "src": "17808:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12162, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17808:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12165, "mutability": "mutable", "name": "p2", "nameLocation": "17828:2:49", "nodeType": "VariableDeclaration", "scope": 12182, "src": "17820:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12164, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17820:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12167, "mutability": "mutable", "name": "p3", "nameLocation": "17846:2:49", "nodeType": "VariableDeclaration", "scope": 12182, "src": "17832:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12166, "name": "string", "nodeType": "ElementaryTypeName", "src": "17832:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "17795:54:49"}, "returnParameters": {"id": 12169, "nodeType": "ParameterList", "parameters": [], "src": "17864:0:49"}, "scope": 18025, "src": "17783:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12204, "nodeType": "Block", "src": "18042:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c75696e743235362c626f6f6c29", "id": 12196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18086:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3", "typeString": "literal_string \"log(uint256,uint256,uint256,bool)\""}, "value": "log(uint256,uint256,uint256,bool)"}, {"id": 12197, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12184, "src": "18123:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12198, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12186, "src": "18127:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12199, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12188, "src": "18131:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12200, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12190, "src": "18135:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3", "typeString": "literal_string \"log(uint256,uint256,uint256,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12194, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "18062:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12195, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "18066:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "18062:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12201, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18062:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12193, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "18046:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12202, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18046:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12203, "nodeType": "ExpressionStatement", "src": "18046:93:49"}]}, "id": 12205, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "17979:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12191, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12184, "mutability": "mutable", "name": "p0", "nameLocation": "17991:2:49", "nodeType": "VariableDeclaration", "scope": 12205, "src": "17983:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12183, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17983:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12186, "mutability": "mutable", "name": "p1", "nameLocation": "18003:2:49", "nodeType": "VariableDeclaration", "scope": 12205, "src": "17995:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12185, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17995:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12188, "mutability": "mutable", "name": "p2", "nameLocation": "18015:2:49", "nodeType": "VariableDeclaration", "scope": 12205, "src": "18007:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12187, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18007:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12190, "mutability": "mutable", "name": "p3", "nameLocation": "18024:2:49", "nodeType": "VariableDeclaration", "scope": 12205, "src": "18019:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12189, "name": "bool", "nodeType": "ElementaryTypeName", "src": "18019:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "17982:45:49"}, "returnParameters": {"id": 12192, "nodeType": "ParameterList", "parameters": [], "src": "18042:0:49"}, "scope": 18025, "src": "17970:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12227, "nodeType": "Block", "src": "18221:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c75696e743235362c6164647265737329", "id": 12219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18265:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79", "typeString": "literal_string \"log(uint256,uint256,uint256,address)\""}, "value": "log(uint256,uint256,uint256,address)"}, {"id": 12220, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12207, "src": "18305:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12221, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12209, "src": "18309:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12222, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12211, "src": "18313:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12223, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12213, "src": "18317:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79", "typeString": "literal_string \"log(uint256,uint256,uint256,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12217, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "18241:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12218, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "18245:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "18241:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12224, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18241:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12216, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "18225:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12225, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18225:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12226, "nodeType": "ExpressionStatement", "src": "18225:96:49"}]}, "id": 12228, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "18155:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12214, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12207, "mutability": "mutable", "name": "p0", "nameLocation": "18167:2:49", "nodeType": "VariableDeclaration", "scope": 12228, "src": "18159:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12206, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18159:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12209, "mutability": "mutable", "name": "p1", "nameLocation": "18179:2:49", "nodeType": "VariableDeclaration", "scope": 12228, "src": "18171:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12208, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18171:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12211, "mutability": "mutable", "name": "p2", "nameLocation": "18191:2:49", "nodeType": "VariableDeclaration", "scope": 12228, "src": "18183:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12210, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18183:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12213, "mutability": "mutable", "name": "p3", "nameLocation": "18203:2:49", "nodeType": "VariableDeclaration", "scope": 12228, "src": "18195:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12212, "name": "address", "nodeType": "ElementaryTypeName", "src": "18195:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "18158:48:49"}, "returnParameters": {"id": 12215, "nodeType": "ParameterList", "parameters": [], "src": "18221:0:49"}, "scope": 18025, "src": "18146:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12250, "nodeType": "Block", "src": "18409:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c737472696e672c75696e7432353629", "id": 12242, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18453:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114", "typeString": "literal_string \"log(uint256,uint256,string,uint256)\""}, "value": "log(uint256,uint256,string,uint256)"}, {"id": 12243, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12230, "src": "18492:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12244, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12232, "src": "18496:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12245, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12234, "src": "18500:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12246, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12236, "src": "18504:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114", "typeString": "literal_string \"log(uint256,uint256,string,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12240, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "18429:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12241, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "18433:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "18429:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12247, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18429:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12239, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "18413:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12248, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18413:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12249, "nodeType": "ExpressionStatement", "src": "18413:95:49"}]}, "id": 12251, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "18337:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12237, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12230, "mutability": "mutable", "name": "p0", "nameLocation": "18349:2:49", "nodeType": "VariableDeclaration", "scope": 12251, "src": "18341:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12229, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18341:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12232, "mutability": "mutable", "name": "p1", "nameLocation": "18361:2:49", "nodeType": "VariableDeclaration", "scope": 12251, "src": "18353:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12231, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18353:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12234, "mutability": "mutable", "name": "p2", "nameLocation": "18379:2:49", "nodeType": "VariableDeclaration", "scope": 12251, "src": "18365:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12233, "name": "string", "nodeType": "ElementaryTypeName", "src": "18365:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12236, "mutability": "mutable", "name": "p3", "nameLocation": "18391:2:49", "nodeType": "VariableDeclaration", "scope": 12251, "src": "18383:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12235, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18383:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "18340:54:49"}, "returnParameters": {"id": 12238, "nodeType": "ParameterList", "parameters": [], "src": "18409:0:49"}, "scope": 18025, "src": "18328:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12273, "nodeType": "Block", "src": "18602:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c737472696e672c737472696e6729", "id": 12265, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18646:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0", "typeString": "literal_string \"log(uint256,uint256,string,string)\""}, "value": "log(uint256,uint256,string,string)"}, {"id": 12266, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12253, "src": "18684:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12267, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12255, "src": "18688:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12268, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12257, "src": "18692:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12269, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12259, "src": "18696:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0", "typeString": "literal_string \"log(uint256,uint256,string,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12263, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "18622:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12264, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "18626:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "18622:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12270, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18622:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12262, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "18606:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12271, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18606:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12272, "nodeType": "ExpressionStatement", "src": "18606:94:49"}]}, "id": 12274, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "18524:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12260, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12253, "mutability": "mutable", "name": "p0", "nameLocation": "18536:2:49", "nodeType": "VariableDeclaration", "scope": 12274, "src": "18528:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12252, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18528:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12255, "mutability": "mutable", "name": "p1", "nameLocation": "18548:2:49", "nodeType": "VariableDeclaration", "scope": 12274, "src": "18540:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12254, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18540:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12257, "mutability": "mutable", "name": "p2", "nameLocation": "18566:2:49", "nodeType": "VariableDeclaration", "scope": 12274, "src": "18552:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12256, "name": "string", "nodeType": "ElementaryTypeName", "src": "18552:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12259, "mutability": "mutable", "name": "p3", "nameLocation": "18584:2:49", "nodeType": "VariableDeclaration", "scope": 12274, "src": "18570:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12258, "name": "string", "nodeType": "ElementaryTypeName", "src": "18570:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "18527:60:49"}, "returnParameters": {"id": 12261, "nodeType": "ParameterList", "parameters": [], "src": "18602:0:49"}, "scope": 18025, "src": "18515:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12296, "nodeType": "Block", "src": "18785:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c737472696e672c626f6f6c29", "id": 12288, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18829:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9", "typeString": "literal_string \"log(uint256,uint256,string,bool)\""}, "value": "log(uint256,uint256,string,bool)"}, {"id": 12289, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12276, "src": "18865:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12290, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12278, "src": "18869:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12291, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12280, "src": "18873:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12292, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12282, "src": "18877:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9", "typeString": "literal_string \"log(uint256,uint256,string,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12286, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "18805:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12287, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "18809:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "18805:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12293, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18805:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12285, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "18789:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12294, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18789:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12295, "nodeType": "ExpressionStatement", "src": "18789:92:49"}]}, "id": 12297, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "18716:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12283, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12276, "mutability": "mutable", "name": "p0", "nameLocation": "18728:2:49", "nodeType": "VariableDeclaration", "scope": 12297, "src": "18720:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12275, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18720:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12278, "mutability": "mutable", "name": "p1", "nameLocation": "18740:2:49", "nodeType": "VariableDeclaration", "scope": 12297, "src": "18732:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12277, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18732:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12280, "mutability": "mutable", "name": "p2", "nameLocation": "18758:2:49", "nodeType": "VariableDeclaration", "scope": 12297, "src": "18744:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12279, "name": "string", "nodeType": "ElementaryTypeName", "src": "18744:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12282, "mutability": "mutable", "name": "p3", "nameLocation": "18767:2:49", "nodeType": "VariableDeclaration", "scope": 12297, "src": "18762:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12281, "name": "bool", "nodeType": "ElementaryTypeName", "src": "18762:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "18719:51:49"}, "returnParameters": {"id": 12284, "nodeType": "ParameterList", "parameters": [], "src": "18785:0:49"}, "scope": 18025, "src": "18707:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12319, "nodeType": "Block", "src": "18969:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c737472696e672c6164647265737329", "id": 12311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "19013:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53", "typeString": "literal_string \"log(uint256,uint256,string,address)\""}, "value": "log(uint256,uint256,string,address)"}, {"id": 12312, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12299, "src": "19052:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12313, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12301, "src": "19056:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12314, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12303, "src": "19060:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12315, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12305, "src": "19064:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53", "typeString": "literal_string \"log(uint256,uint256,string,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12309, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "18989:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12310, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "18993:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "18989:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12316, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18989:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12308, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "18973:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12317, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18973:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12318, "nodeType": "ExpressionStatement", "src": "18973:95:49"}]}, "id": 12320, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "18897:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12306, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12299, "mutability": "mutable", "name": "p0", "nameLocation": "18909:2:49", "nodeType": "VariableDeclaration", "scope": 12320, "src": "18901:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12298, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18901:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12301, "mutability": "mutable", "name": "p1", "nameLocation": "18921:2:49", "nodeType": "VariableDeclaration", "scope": 12320, "src": "18913:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12300, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18913:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12303, "mutability": "mutable", "name": "p2", "nameLocation": "18939:2:49", "nodeType": "VariableDeclaration", "scope": 12320, "src": "18925:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12302, "name": "string", "nodeType": "ElementaryTypeName", "src": "18925:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12305, "mutability": "mutable", "name": "p3", "nameLocation": "18951:2:49", "nodeType": "VariableDeclaration", "scope": 12320, "src": "18943:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12304, "name": "address", "nodeType": "ElementaryTypeName", "src": "18943:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "18900:54:49"}, "returnParameters": {"id": 12307, "nodeType": "ParameterList", "parameters": [], "src": "18969:0:49"}, "scope": 18025, "src": "18888:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12342, "nodeType": "Block", "src": "19147:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c626f6f6c2c75696e7432353629", "id": 12334, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "19191:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd", "typeString": "literal_string \"log(uint256,uint256,bool,uint256)\""}, "value": "log(uint256,uint256,bool,uint256)"}, {"id": 12335, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12322, "src": "19228:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12336, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12324, "src": "19232:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12337, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12326, "src": "19236:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12338, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12328, "src": "19240:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd", "typeString": "literal_string \"log(uint256,uint256,bool,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12332, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "19167:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12333, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "19171:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "19167:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12339, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19167:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12331, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "19151:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19151:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12341, "nodeType": "ExpressionStatement", "src": "19151:93:49"}]}, "id": 12343, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "19084:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12329, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12322, "mutability": "mutable", "name": "p0", "nameLocation": "19096:2:49", "nodeType": "VariableDeclaration", "scope": 12343, "src": "19088:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12321, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19088:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12324, "mutability": "mutable", "name": "p1", "nameLocation": "19108:2:49", "nodeType": "VariableDeclaration", "scope": 12343, "src": "19100:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12323, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19100:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12326, "mutability": "mutable", "name": "p2", "nameLocation": "19117:2:49", "nodeType": "VariableDeclaration", "scope": 12343, "src": "19112:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12325, "name": "bool", "nodeType": "ElementaryTypeName", "src": "19112:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12328, "mutability": "mutable", "name": "p3", "nameLocation": "19129:2:49", "nodeType": "VariableDeclaration", "scope": 12343, "src": "19121:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12327, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19121:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "19087:45:49"}, "returnParameters": {"id": 12330, "nodeType": "ParameterList", "parameters": [], "src": "19147:0:49"}, "scope": 18025, "src": "19075:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12365, "nodeType": "Block", "src": "19329:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c626f6f6c2c737472696e6729", "id": 12357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "19373:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a", "typeString": "literal_string \"log(uint256,uint256,bool,string)\""}, "value": "log(uint256,uint256,bool,string)"}, {"id": 12358, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12345, "src": "19409:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12359, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12347, "src": "19413:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12360, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "19417:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12361, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12351, "src": "19421:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a", "typeString": "literal_string \"log(uint256,uint256,bool,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12355, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "19349:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12356, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "19353:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "19349:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12362, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19349:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12354, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "19333:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12363, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19333:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12364, "nodeType": "ExpressionStatement", "src": "19333:92:49"}]}, "id": 12366, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "19260:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12352, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12345, "mutability": "mutable", "name": "p0", "nameLocation": "19272:2:49", "nodeType": "VariableDeclaration", "scope": 12366, "src": "19264:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12344, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19264:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12347, "mutability": "mutable", "name": "p1", "nameLocation": "19284:2:49", "nodeType": "VariableDeclaration", "scope": 12366, "src": "19276:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12346, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19276:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12349, "mutability": "mutable", "name": "p2", "nameLocation": "19293:2:49", "nodeType": "VariableDeclaration", "scope": 12366, "src": "19288:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12348, "name": "bool", "nodeType": "ElementaryTypeName", "src": "19288:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12351, "mutability": "mutable", "name": "p3", "nameLocation": "19311:2:49", "nodeType": "VariableDeclaration", "scope": 12366, "src": "19297:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12350, "name": "string", "nodeType": "ElementaryTypeName", "src": "19297:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "19263:51:49"}, "returnParameters": {"id": 12353, "nodeType": "ParameterList", "parameters": [], "src": "19329:0:49"}, "scope": 18025, "src": "19251:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12388, "nodeType": "Block", "src": "19501:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c626f6f6c2c626f6f6c29", "id": 12380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "19545:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe", "typeString": "literal_string \"log(uint256,uint256,bool,bool)\""}, "value": "log(uint256,uint256,bool,bool)"}, {"id": 12381, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12368, "src": "19579:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12382, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12370, "src": "19583:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12383, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12372, "src": "19587:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12384, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12374, "src": "19591:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe", "typeString": "literal_string \"log(uint256,uint256,bool,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12378, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "19521:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12379, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "19525:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "19521:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12385, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19521:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12377, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "19505:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12386, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19505:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12387, "nodeType": "ExpressionStatement", "src": "19505:90:49"}]}, "id": 12389, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "19441:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12375, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12368, "mutability": "mutable", "name": "p0", "nameLocation": "19453:2:49", "nodeType": "VariableDeclaration", "scope": 12389, "src": "19445:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12367, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19445:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12370, "mutability": "mutable", "name": "p1", "nameLocation": "19465:2:49", "nodeType": "VariableDeclaration", "scope": 12389, "src": "19457:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12369, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19457:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12372, "mutability": "mutable", "name": "p2", "nameLocation": "19474:2:49", "nodeType": "VariableDeclaration", "scope": 12389, "src": "19469:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12371, "name": "bool", "nodeType": "ElementaryTypeName", "src": "19469:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12374, "mutability": "mutable", "name": "p3", "nameLocation": "19483:2:49", "nodeType": "VariableDeclaration", "scope": 12389, "src": "19478:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12373, "name": "bool", "nodeType": "ElementaryTypeName", "src": "19478:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "19444:42:49"}, "returnParameters": {"id": 12376, "nodeType": "ParameterList", "parameters": [], "src": "19501:0:49"}, "scope": 18025, "src": "19432:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12411, "nodeType": "Block", "src": "19674:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c626f6f6c2c6164647265737329", "id": 12403, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "19718:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b", "typeString": "literal_string \"log(uint256,uint256,bool,address)\""}, "value": "log(uint256,uint256,bool,address)"}, {"id": 12404, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12391, "src": "19755:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12405, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12393, "src": "19759:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12406, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12395, "src": "19763:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12407, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12397, "src": "19767:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b", "typeString": "literal_string \"log(uint256,uint256,bool,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12401, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "19694:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12402, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "19698:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "19694:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12408, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19694:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12400, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "19678:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12409, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19678:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12410, "nodeType": "ExpressionStatement", "src": "19678:93:49"}]}, "id": 12412, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "19611:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12398, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12391, "mutability": "mutable", "name": "p0", "nameLocation": "19623:2:49", "nodeType": "VariableDeclaration", "scope": 12412, "src": "19615:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12390, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19615:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12393, "mutability": "mutable", "name": "p1", "nameLocation": "19635:2:49", "nodeType": "VariableDeclaration", "scope": 12412, "src": "19627:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12392, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19627:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12395, "mutability": "mutable", "name": "p2", "nameLocation": "19644:2:49", "nodeType": "VariableDeclaration", "scope": 12412, "src": "19639:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12394, "name": "bool", "nodeType": "ElementaryTypeName", "src": "19639:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12397, "mutability": "mutable", "name": "p3", "nameLocation": "19656:2:49", "nodeType": "VariableDeclaration", "scope": 12412, "src": "19648:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12396, "name": "address", "nodeType": "ElementaryTypeName", "src": "19648:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "19614:45:49"}, "returnParameters": {"id": 12399, "nodeType": "ParameterList", "parameters": [], "src": "19674:0:49"}, "scope": 18025, "src": "19602:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12434, "nodeType": "Block", "src": "19853:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c616464726573732c75696e7432353629", "id": 12426, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "19897:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36", "typeString": "literal_string \"log(uint256,uint256,address,uint256)\""}, "value": "log(uint256,uint256,address,uint256)"}, {"id": 12427, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12414, "src": "19937:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12428, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12416, "src": "19941:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12429, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12418, "src": "19945:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12430, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12420, "src": "19949:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36", "typeString": "literal_string \"log(uint256,uint256,address,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12424, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "19873:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12425, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "19877:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "19873:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12431, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19873:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12423, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "19857:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12432, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19857:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12433, "nodeType": "ExpressionStatement", "src": "19857:96:49"}]}, "id": 12435, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "19787:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12421, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12414, "mutability": "mutable", "name": "p0", "nameLocation": "19799:2:49", "nodeType": "VariableDeclaration", "scope": 12435, "src": "19791:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12413, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19791:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12416, "mutability": "mutable", "name": "p1", "nameLocation": "19811:2:49", "nodeType": "VariableDeclaration", "scope": 12435, "src": "19803:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12415, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19803:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12418, "mutability": "mutable", "name": "p2", "nameLocation": "19823:2:49", "nodeType": "VariableDeclaration", "scope": 12435, "src": "19815:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12417, "name": "address", "nodeType": "ElementaryTypeName", "src": "19815:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12420, "mutability": "mutable", "name": "p3", "nameLocation": "19835:2:49", "nodeType": "VariableDeclaration", "scope": 12435, "src": "19827:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12419, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19827:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "19790:48:49"}, "returnParameters": {"id": 12422, "nodeType": "ParameterList", "parameters": [], "src": "19853:0:49"}, "scope": 18025, "src": "19778:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12457, "nodeType": "Block", "src": "20041:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c616464726573732c737472696e6729", "id": 12449, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20085:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40", "typeString": "literal_string \"log(uint256,uint256,address,string)\""}, "value": "log(uint256,uint256,address,string)"}, {"id": 12450, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12437, "src": "20124:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12451, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12439, "src": "20128:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12452, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12441, "src": "20132:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12453, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12443, "src": "20136:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40", "typeString": "literal_string \"log(uint256,uint256,address,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12447, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "20061:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12448, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "20065:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "20061:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12454, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20061:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12446, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "20045:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12455, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20045:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12456, "nodeType": "ExpressionStatement", "src": "20045:95:49"}]}, "id": 12458, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "19969:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12444, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12437, "mutability": "mutable", "name": "p0", "nameLocation": "19981:2:49", "nodeType": "VariableDeclaration", "scope": 12458, "src": "19973:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12436, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19973:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12439, "mutability": "mutable", "name": "p1", "nameLocation": "19993:2:49", "nodeType": "VariableDeclaration", "scope": 12458, "src": "19985:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12438, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19985:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12441, "mutability": "mutable", "name": "p2", "nameLocation": "20005:2:49", "nodeType": "VariableDeclaration", "scope": 12458, "src": "19997:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12440, "name": "address", "nodeType": "ElementaryTypeName", "src": "19997:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12443, "mutability": "mutable", "name": "p3", "nameLocation": "20023:2:49", "nodeType": "VariableDeclaration", "scope": 12458, "src": "20009:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12442, "name": "string", "nodeType": "ElementaryTypeName", "src": "20009:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "19972:54:49"}, "returnParameters": {"id": 12445, "nodeType": "ParameterList", "parameters": [], "src": "20041:0:49"}, "scope": 18025, "src": "19960:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12480, "nodeType": "Block", "src": "20219:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c616464726573732c626f6f6c29", "id": 12472, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20263:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201", "typeString": "literal_string \"log(uint256,uint256,address,bool)\""}, "value": "log(uint256,uint256,address,bool)"}, {"id": 12473, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12460, "src": "20300:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12474, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12462, "src": "20304:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12475, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12464, "src": "20308:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12476, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12466, "src": "20312:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201", "typeString": "literal_string \"log(uint256,uint256,address,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12470, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "20239:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12471, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "20243:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "20239:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12477, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20239:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12469, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "20223:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12478, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20223:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12479, "nodeType": "ExpressionStatement", "src": "20223:93:49"}]}, "id": 12481, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "20156:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12467, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12460, "mutability": "mutable", "name": "p0", "nameLocation": "20168:2:49", "nodeType": "VariableDeclaration", "scope": 12481, "src": "20160:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12459, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20160:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12462, "mutability": "mutable", "name": "p1", "nameLocation": "20180:2:49", "nodeType": "VariableDeclaration", "scope": 12481, "src": "20172:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12461, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20172:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12464, "mutability": "mutable", "name": "p2", "nameLocation": "20192:2:49", "nodeType": "VariableDeclaration", "scope": 12481, "src": "20184:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12463, "name": "address", "nodeType": "ElementaryTypeName", "src": "20184:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12466, "mutability": "mutable", "name": "p3", "nameLocation": "20201:2:49", "nodeType": "VariableDeclaration", "scope": 12481, "src": "20196:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12465, "name": "bool", "nodeType": "ElementaryTypeName", "src": "20196:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "20159:45:49"}, "returnParameters": {"id": 12468, "nodeType": "ParameterList", "parameters": [], "src": "20219:0:49"}, "scope": 18025, "src": "20147:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12503, "nodeType": "Block", "src": "20398:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c75696e743235362c616464726573732c6164647265737329", "id": 12495, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20442:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d", "typeString": "literal_string \"log(uint256,uint256,address,address)\""}, "value": "log(uint256,uint256,address,address)"}, {"id": 12496, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12483, "src": "20482:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12497, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12485, "src": "20486:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12498, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12487, "src": "20490:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12499, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12489, "src": "20494:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d", "typeString": "literal_string \"log(uint256,uint256,address,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12493, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "20418:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12494, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "20422:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "20418:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12500, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20418:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12492, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "20402:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12501, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20402:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12502, "nodeType": "ExpressionStatement", "src": "20402:96:49"}]}, "id": 12504, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "20332:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12490, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12483, "mutability": "mutable", "name": "p0", "nameLocation": "20344:2:49", "nodeType": "VariableDeclaration", "scope": 12504, "src": "20336:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12482, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20336:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12485, "mutability": "mutable", "name": "p1", "nameLocation": "20356:2:49", "nodeType": "VariableDeclaration", "scope": 12504, "src": "20348:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12484, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20348:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12487, "mutability": "mutable", "name": "p2", "nameLocation": "20368:2:49", "nodeType": "VariableDeclaration", "scope": 12504, "src": "20360:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12486, "name": "address", "nodeType": "ElementaryTypeName", "src": "20360:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12489, "mutability": "mutable", "name": "p3", "nameLocation": "20380:2:49", "nodeType": "VariableDeclaration", "scope": 12504, "src": "20372:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12488, "name": "address", "nodeType": "ElementaryTypeName", "src": "20372:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "20335:48:49"}, "returnParameters": {"id": 12491, "nodeType": "ParameterList", "parameters": [], "src": "20398:0:49"}, "scope": 18025, "src": "20323:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12526, "nodeType": "Block", "src": "20586:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c75696e743235362c75696e7432353629", "id": 12518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20630:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f", "typeString": "literal_string \"log(uint256,string,uint256,uint256)\""}, "value": "log(uint256,string,uint256,uint256)"}, {"id": 12519, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12506, "src": "20669:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12520, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12508, "src": "20673:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12521, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12510, "src": "20677:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12522, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12512, "src": "20681:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f", "typeString": "literal_string \"log(uint256,string,uint256,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12516, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "20606:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12517, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "20610:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "20606:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12523, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20606:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12515, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "20590:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12524, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20590:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12525, "nodeType": "ExpressionStatement", "src": "20590:95:49"}]}, "id": 12527, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "20514:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12513, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12506, "mutability": "mutable", "name": "p0", "nameLocation": "20526:2:49", "nodeType": "VariableDeclaration", "scope": 12527, "src": "20518:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12505, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20518:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12508, "mutability": "mutable", "name": "p1", "nameLocation": "20544:2:49", "nodeType": "VariableDeclaration", "scope": 12527, "src": "20530:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12507, "name": "string", "nodeType": "ElementaryTypeName", "src": "20530:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12510, "mutability": "mutable", "name": "p2", "nameLocation": "20556:2:49", "nodeType": "VariableDeclaration", "scope": 12527, "src": "20548:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12509, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20548:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12512, "mutability": "mutable", "name": "p3", "nameLocation": "20568:2:49", "nodeType": "VariableDeclaration", "scope": 12527, "src": "20560:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12511, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20560:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "20517:54:49"}, "returnParameters": {"id": 12514, "nodeType": "ParameterList", "parameters": [], "src": "20586:0:49"}, "scope": 18025, "src": "20505:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12549, "nodeType": "Block", "src": "20779:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c75696e743235362c737472696e6729", "id": 12541, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20823:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace", "typeString": "literal_string \"log(uint256,string,uint256,string)\""}, "value": "log(uint256,string,uint256,string)"}, {"id": 12542, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12529, "src": "20861:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12543, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12531, "src": "20865:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12544, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12533, "src": "20869:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12545, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12535, "src": "20873:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace", "typeString": "literal_string \"log(uint256,string,uint256,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12539, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "20799:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12540, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "20803:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "20799:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12546, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20799:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12538, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "20783:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12547, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20783:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12548, "nodeType": "ExpressionStatement", "src": "20783:94:49"}]}, "id": 12550, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "20701:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12536, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12529, "mutability": "mutable", "name": "p0", "nameLocation": "20713:2:49", "nodeType": "VariableDeclaration", "scope": 12550, "src": "20705:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12528, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20705:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12531, "mutability": "mutable", "name": "p1", "nameLocation": "20731:2:49", "nodeType": "VariableDeclaration", "scope": 12550, "src": "20717:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12530, "name": "string", "nodeType": "ElementaryTypeName", "src": "20717:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12533, "mutability": "mutable", "name": "p2", "nameLocation": "20743:2:49", "nodeType": "VariableDeclaration", "scope": 12550, "src": "20735:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12532, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20735:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12535, "mutability": "mutable", "name": "p3", "nameLocation": "20761:2:49", "nodeType": "VariableDeclaration", "scope": 12550, "src": "20747:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12534, "name": "string", "nodeType": "ElementaryTypeName", "src": "20747:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "20704:60:49"}, "returnParameters": {"id": 12537, "nodeType": "ParameterList", "parameters": [], "src": "20779:0:49"}, "scope": 18025, "src": "20692:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12572, "nodeType": "Block", "src": "20962:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c75696e743235362c626f6f6c29", "id": 12564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "21006:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c", "typeString": "literal_string \"log(uint256,string,uint256,bool)\""}, "value": "log(uint256,string,uint256,bool)"}, {"id": 12565, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12552, "src": "21042:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12566, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12554, "src": "21046:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12567, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12556, "src": "21050:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12568, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12558, "src": "21054:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c", "typeString": "literal_string \"log(uint256,string,uint256,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12562, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "20982:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12563, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "20986:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "20982:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12569, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20982:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12561, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "20966:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12570, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20966:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12571, "nodeType": "ExpressionStatement", "src": "20966:92:49"}]}, "id": 12573, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "20893:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12559, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12552, "mutability": "mutable", "name": "p0", "nameLocation": "20905:2:49", "nodeType": "VariableDeclaration", "scope": 12573, "src": "20897:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12551, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20897:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12554, "mutability": "mutable", "name": "p1", "nameLocation": "20923:2:49", "nodeType": "VariableDeclaration", "scope": 12573, "src": "20909:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12553, "name": "string", "nodeType": "ElementaryTypeName", "src": "20909:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12556, "mutability": "mutable", "name": "p2", "nameLocation": "20935:2:49", "nodeType": "VariableDeclaration", "scope": 12573, "src": "20927:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12555, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20927:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12558, "mutability": "mutable", "name": "p3", "nameLocation": "20944:2:49", "nodeType": "VariableDeclaration", "scope": 12573, "src": "20939:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12557, "name": "bool", "nodeType": "ElementaryTypeName", "src": "20939:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "20896:51:49"}, "returnParameters": {"id": 12560, "nodeType": "ParameterList", "parameters": [], "src": "20962:0:49"}, "scope": 18025, "src": "20884:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12595, "nodeType": "Block", "src": "21146:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c75696e743235362c6164647265737329", "id": 12587, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "21190:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08", "typeString": "literal_string \"log(uint256,string,uint256,address)\""}, "value": "log(uint256,string,uint256,address)"}, {"id": 12588, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12575, "src": "21229:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12589, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12577, "src": "21233:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12590, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12579, "src": "21237:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12591, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12581, "src": "21241:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08", "typeString": "literal_string \"log(uint256,string,uint256,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12585, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "21166:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12586, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "21170:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "21166:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12592, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21166:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12584, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "21150:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12593, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21150:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12594, "nodeType": "ExpressionStatement", "src": "21150:95:49"}]}, "id": 12596, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "21074:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12582, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12575, "mutability": "mutable", "name": "p0", "nameLocation": "21086:2:49", "nodeType": "VariableDeclaration", "scope": 12596, "src": "21078:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12574, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21078:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12577, "mutability": "mutable", "name": "p1", "nameLocation": "21104:2:49", "nodeType": "VariableDeclaration", "scope": 12596, "src": "21090:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12576, "name": "string", "nodeType": "ElementaryTypeName", "src": "21090:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12579, "mutability": "mutable", "name": "p2", "nameLocation": "21116:2:49", "nodeType": "VariableDeclaration", "scope": 12596, "src": "21108:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12578, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21108:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12581, "mutability": "mutable", "name": "p3", "nameLocation": "21128:2:49", "nodeType": "VariableDeclaration", "scope": 12596, "src": "21120:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12580, "name": "address", "nodeType": "ElementaryTypeName", "src": "21120:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "21077:54:49"}, "returnParameters": {"id": 12583, "nodeType": "ParameterList", "parameters": [], "src": "21146:0:49"}, "scope": 18025, "src": "21065:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12618, "nodeType": "Block", "src": "21339:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c737472696e672c75696e7432353629", "id": 12610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "21383:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1", "typeString": "literal_string \"log(uint256,string,string,uint256)\""}, "value": "log(uint256,string,string,uint256)"}, {"id": 12611, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12598, "src": "21421:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12612, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12600, "src": "21425:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12613, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12602, "src": "21429:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12614, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12604, "src": "21433:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1", "typeString": "literal_string \"log(uint256,string,string,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12608, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "21359:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12609, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "21363:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "21359:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12615, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21359:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12607, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "21343:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12616, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21343:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12617, "nodeType": "ExpressionStatement", "src": "21343:94:49"}]}, "id": 12619, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "21261:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12605, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12598, "mutability": "mutable", "name": "p0", "nameLocation": "21273:2:49", "nodeType": "VariableDeclaration", "scope": 12619, "src": "21265:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12597, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21265:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12600, "mutability": "mutable", "name": "p1", "nameLocation": "21291:2:49", "nodeType": "VariableDeclaration", "scope": 12619, "src": "21277:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12599, "name": "string", "nodeType": "ElementaryTypeName", "src": "21277:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12602, "mutability": "mutable", "name": "p2", "nameLocation": "21309:2:49", "nodeType": "VariableDeclaration", "scope": 12619, "src": "21295:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12601, "name": "string", "nodeType": "ElementaryTypeName", "src": "21295:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12604, "mutability": "mutable", "name": "p3", "nameLocation": "21321:2:49", "nodeType": "VariableDeclaration", "scope": 12619, "src": "21313:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12603, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21313:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "21264:60:49"}, "returnParameters": {"id": 12606, "nodeType": "ParameterList", "parameters": [], "src": "21339:0:49"}, "scope": 18025, "src": "21252:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12641, "nodeType": "Block", "src": "21537:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c737472696e672c737472696e6729", "id": 12633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "21581:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a", "typeString": "literal_string \"log(uint256,string,string,string)\""}, "value": "log(uint256,string,string,string)"}, {"id": 12634, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12621, "src": "21618:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12635, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12623, "src": "21622:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12636, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12625, "src": "21626:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12637, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12627, "src": "21630:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a", "typeString": "literal_string \"log(uint256,string,string,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12631, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "21557:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12632, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "21561:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "21557:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12638, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21557:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12630, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "21541:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12639, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21541:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12640, "nodeType": "ExpressionStatement", "src": "21541:93:49"}]}, "id": 12642, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "21453:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12628, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12621, "mutability": "mutable", "name": "p0", "nameLocation": "21465:2:49", "nodeType": "VariableDeclaration", "scope": 12642, "src": "21457:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12620, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21457:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12623, "mutability": "mutable", "name": "p1", "nameLocation": "21483:2:49", "nodeType": "VariableDeclaration", "scope": 12642, "src": "21469:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12622, "name": "string", "nodeType": "ElementaryTypeName", "src": "21469:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12625, "mutability": "mutable", "name": "p2", "nameLocation": "21501:2:49", "nodeType": "VariableDeclaration", "scope": 12642, "src": "21487:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12624, "name": "string", "nodeType": "ElementaryTypeName", "src": "21487:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12627, "mutability": "mutable", "name": "p3", "nameLocation": "21519:2:49", "nodeType": "VariableDeclaration", "scope": 12642, "src": "21505:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12626, "name": "string", "nodeType": "ElementaryTypeName", "src": "21505:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "21456:66:49"}, "returnParameters": {"id": 12629, "nodeType": "ParameterList", "parameters": [], "src": "21537:0:49"}, "scope": 18025, "src": "21444:194:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12664, "nodeType": "Block", "src": "21725:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c737472696e672c626f6f6c29", "id": 12656, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "21769:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9", "typeString": "literal_string \"log(uint256,string,string,bool)\""}, "value": "log(uint256,string,string,bool)"}, {"id": 12657, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12644, "src": "21804:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12658, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12646, "src": "21808:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12659, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12648, "src": "21812:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12660, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12650, "src": "21816:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9", "typeString": "literal_string \"log(uint256,string,string,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12654, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "21745:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12655, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "21749:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "21745:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12661, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21745:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12653, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "21729:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12662, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21729:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12663, "nodeType": "ExpressionStatement", "src": "21729:91:49"}]}, "id": 12665, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "21650:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12651, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12644, "mutability": "mutable", "name": "p0", "nameLocation": "21662:2:49", "nodeType": "VariableDeclaration", "scope": 12665, "src": "21654:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12643, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21654:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12646, "mutability": "mutable", "name": "p1", "nameLocation": "21680:2:49", "nodeType": "VariableDeclaration", "scope": 12665, "src": "21666:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12645, "name": "string", "nodeType": "ElementaryTypeName", "src": "21666:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12648, "mutability": "mutable", "name": "p2", "nameLocation": "21698:2:49", "nodeType": "VariableDeclaration", "scope": 12665, "src": "21684:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12647, "name": "string", "nodeType": "ElementaryTypeName", "src": "21684:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12650, "mutability": "mutable", "name": "p3", "nameLocation": "21707:2:49", "nodeType": "VariableDeclaration", "scope": 12665, "src": "21702:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12649, "name": "bool", "nodeType": "ElementaryTypeName", "src": "21702:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "21653:57:49"}, "returnParameters": {"id": 12652, "nodeType": "ParameterList", "parameters": [], "src": "21725:0:49"}, "scope": 18025, "src": "21641:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12687, "nodeType": "Block", "src": "21914:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c737472696e672c6164647265737329", "id": 12679, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "21958:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7", "typeString": "literal_string \"log(uint256,string,string,address)\""}, "value": "log(uint256,string,string,address)"}, {"id": 12680, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12667, "src": "21996:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12681, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12669, "src": "22000:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12682, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12671, "src": "22004:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12683, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12673, "src": "22008:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7", "typeString": "literal_string \"log(uint256,string,string,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12677, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "21934:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12678, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "21938:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "21934:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12684, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21934:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12676, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "21918:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12685, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21918:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12686, "nodeType": "ExpressionStatement", "src": "21918:94:49"}]}, "id": 12688, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "21836:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12674, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12667, "mutability": "mutable", "name": "p0", "nameLocation": "21848:2:49", "nodeType": "VariableDeclaration", "scope": 12688, "src": "21840:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12666, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21840:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12669, "mutability": "mutable", "name": "p1", "nameLocation": "21866:2:49", "nodeType": "VariableDeclaration", "scope": 12688, "src": "21852:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12668, "name": "string", "nodeType": "ElementaryTypeName", "src": "21852:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12671, "mutability": "mutable", "name": "p2", "nameLocation": "21884:2:49", "nodeType": "VariableDeclaration", "scope": 12688, "src": "21870:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12670, "name": "string", "nodeType": "ElementaryTypeName", "src": "21870:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12673, "mutability": "mutable", "name": "p3", "nameLocation": "21896:2:49", "nodeType": "VariableDeclaration", "scope": 12688, "src": "21888:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12672, "name": "address", "nodeType": "ElementaryTypeName", "src": "21888:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "21839:60:49"}, "returnParameters": {"id": 12675, "nodeType": "ParameterList", "parameters": [], "src": "21914:0:49"}, "scope": 18025, "src": "21827:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12710, "nodeType": "Block", "src": "22097:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c626f6f6c2c75696e7432353629", "id": 12702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "22141:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a", "typeString": "literal_string \"log(uint256,string,bool,uint256)\""}, "value": "log(uint256,string,bool,uint256)"}, {"id": 12703, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12690, "src": "22177:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12704, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12692, "src": "22181:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12705, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12694, "src": "22185:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12706, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12696, "src": "22189:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a", "typeString": "literal_string \"log(uint256,string,bool,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12700, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "22117:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12701, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "22121:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "22117:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12707, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22117:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12699, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "22101:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12708, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22101:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12709, "nodeType": "ExpressionStatement", "src": "22101:92:49"}]}, "id": 12711, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "22028:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12697, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12690, "mutability": "mutable", "name": "p0", "nameLocation": "22040:2:49", "nodeType": "VariableDeclaration", "scope": 12711, "src": "22032:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12689, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22032:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12692, "mutability": "mutable", "name": "p1", "nameLocation": "22058:2:49", "nodeType": "VariableDeclaration", "scope": 12711, "src": "22044:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12691, "name": "string", "nodeType": "ElementaryTypeName", "src": "22044:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12694, "mutability": "mutable", "name": "p2", "nameLocation": "22067:2:49", "nodeType": "VariableDeclaration", "scope": 12711, "src": "22062:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12693, "name": "bool", "nodeType": "ElementaryTypeName", "src": "22062:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12696, "mutability": "mutable", "name": "p3", "nameLocation": "22079:2:49", "nodeType": "VariableDeclaration", "scope": 12711, "src": "22071:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12695, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22071:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "22031:51:49"}, "returnParameters": {"id": 12698, "nodeType": "ParameterList", "parameters": [], "src": "22097:0:49"}, "scope": 18025, "src": "22019:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12733, "nodeType": "Block", "src": "22284:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c626f6f6c2c737472696e6729", "id": 12725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "22328:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c", "typeString": "literal_string \"log(uint256,string,bool,string)\""}, "value": "log(uint256,string,bool,string)"}, {"id": 12726, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12713, "src": "22363:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12727, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12715, "src": "22367:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12728, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12717, "src": "22371:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12729, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12719, "src": "22375:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c", "typeString": "literal_string \"log(uint256,string,bool,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12723, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "22304:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12724, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "22308:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "22304:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12730, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22304:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12722, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "22288:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12731, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22288:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12732, "nodeType": "ExpressionStatement", "src": "22288:91:49"}]}, "id": 12734, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "22209:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12720, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12713, "mutability": "mutable", "name": "p0", "nameLocation": "22221:2:49", "nodeType": "VariableDeclaration", "scope": 12734, "src": "22213:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12712, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22213:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12715, "mutability": "mutable", "name": "p1", "nameLocation": "22239:2:49", "nodeType": "VariableDeclaration", "scope": 12734, "src": "22225:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12714, "name": "string", "nodeType": "ElementaryTypeName", "src": "22225:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12717, "mutability": "mutable", "name": "p2", "nameLocation": "22248:2:49", "nodeType": "VariableDeclaration", "scope": 12734, "src": "22243:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12716, "name": "bool", "nodeType": "ElementaryTypeName", "src": "22243:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12719, "mutability": "mutable", "name": "p3", "nameLocation": "22266:2:49", "nodeType": "VariableDeclaration", "scope": 12734, "src": "22252:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12718, "name": "string", "nodeType": "ElementaryTypeName", "src": "22252:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "22212:57:49"}, "returnParameters": {"id": 12721, "nodeType": "ParameterList", "parameters": [], "src": "22284:0:49"}, "scope": 18025, "src": "22200:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12756, "nodeType": "Block", "src": "22461:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c626f6f6c2c626f6f6c29", "id": 12748, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "22505:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f", "typeString": "literal_string \"log(uint256,string,bool,bool)\""}, "value": "log(uint256,string,bool,bool)"}, {"id": 12749, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12736, "src": "22538:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12750, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12738, "src": "22542:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12751, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12740, "src": "22546:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12752, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12742, "src": "22550:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f", "typeString": "literal_string \"log(uint256,string,bool,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12746, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "22481:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12747, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "22485:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "22481:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12753, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22481:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12745, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "22465:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12754, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22465:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12755, "nodeType": "ExpressionStatement", "src": "22465:89:49"}]}, "id": 12757, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "22395:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12743, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12736, "mutability": "mutable", "name": "p0", "nameLocation": "22407:2:49", "nodeType": "VariableDeclaration", "scope": 12757, "src": "22399:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12735, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22399:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12738, "mutability": "mutable", "name": "p1", "nameLocation": "22425:2:49", "nodeType": "VariableDeclaration", "scope": 12757, "src": "22411:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12737, "name": "string", "nodeType": "ElementaryTypeName", "src": "22411:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12740, "mutability": "mutable", "name": "p2", "nameLocation": "22434:2:49", "nodeType": "VariableDeclaration", "scope": 12757, "src": "22429:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12739, "name": "bool", "nodeType": "ElementaryTypeName", "src": "22429:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12742, "mutability": "mutable", "name": "p3", "nameLocation": "22443:2:49", "nodeType": "VariableDeclaration", "scope": 12757, "src": "22438:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12741, "name": "bool", "nodeType": "ElementaryTypeName", "src": "22438:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "22398:48:49"}, "returnParameters": {"id": 12744, "nodeType": "ParameterList", "parameters": [], "src": "22461:0:49"}, "scope": 18025, "src": "22386:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12779, "nodeType": "Block", "src": "22639:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c626f6f6c2c6164647265737329", "id": 12771, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "22683:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550", "typeString": "literal_string \"log(uint256,string,bool,address)\""}, "value": "log(uint256,string,bool,address)"}, {"id": 12772, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12759, "src": "22719:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12773, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12761, "src": "22723:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12774, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12763, "src": "22727:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12775, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12765, "src": "22731:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550", "typeString": "literal_string \"log(uint256,string,bool,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12769, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "22659:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12770, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "22663:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "22659:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12776, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22659:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12768, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "22643:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12777, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22643:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12778, "nodeType": "ExpressionStatement", "src": "22643:92:49"}]}, "id": 12780, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "22570:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12766, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12759, "mutability": "mutable", "name": "p0", "nameLocation": "22582:2:49", "nodeType": "VariableDeclaration", "scope": 12780, "src": "22574:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12758, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22574:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12761, "mutability": "mutable", "name": "p1", "nameLocation": "22600:2:49", "nodeType": "VariableDeclaration", "scope": 12780, "src": "22586:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12760, "name": "string", "nodeType": "ElementaryTypeName", "src": "22586:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12763, "mutability": "mutable", "name": "p2", "nameLocation": "22609:2:49", "nodeType": "VariableDeclaration", "scope": 12780, "src": "22604:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12762, "name": "bool", "nodeType": "ElementaryTypeName", "src": "22604:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12765, "mutability": "mutable", "name": "p3", "nameLocation": "22621:2:49", "nodeType": "VariableDeclaration", "scope": 12780, "src": "22613:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12764, "name": "address", "nodeType": "ElementaryTypeName", "src": "22613:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "22573:51:49"}, "returnParameters": {"id": 12767, "nodeType": "ParameterList", "parameters": [], "src": "22639:0:49"}, "scope": 18025, "src": "22561:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12802, "nodeType": "Block", "src": "22823:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c616464726573732c75696e7432353629", "id": 12794, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "22867:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908", "typeString": "literal_string \"log(uint256,string,address,uint256)\""}, "value": "log(uint256,string,address,uint256)"}, {"id": 12795, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12782, "src": "22906:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12796, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12784, "src": "22910:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12797, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12786, "src": "22914:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12798, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12788, "src": "22918:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908", "typeString": "literal_string \"log(uint256,string,address,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12792, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "22843:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12793, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "22847:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "22843:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12799, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22843:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12791, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "22827:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12800, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22827:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12801, "nodeType": "ExpressionStatement", "src": "22827:95:49"}]}, "id": 12803, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "22751:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12789, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12782, "mutability": "mutable", "name": "p0", "nameLocation": "22763:2:49", "nodeType": "VariableDeclaration", "scope": 12803, "src": "22755:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12781, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22755:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12784, "mutability": "mutable", "name": "p1", "nameLocation": "22781:2:49", "nodeType": "VariableDeclaration", "scope": 12803, "src": "22767:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12783, "name": "string", "nodeType": "ElementaryTypeName", "src": "22767:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12786, "mutability": "mutable", "name": "p2", "nameLocation": "22793:2:49", "nodeType": "VariableDeclaration", "scope": 12803, "src": "22785:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12785, "name": "address", "nodeType": "ElementaryTypeName", "src": "22785:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12788, "mutability": "mutable", "name": "p3", "nameLocation": "22805:2:49", "nodeType": "VariableDeclaration", "scope": 12803, "src": "22797:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12787, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22797:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "22754:54:49"}, "returnParameters": {"id": 12790, "nodeType": "ParameterList", "parameters": [], "src": "22823:0:49"}, "scope": 18025, "src": "22742:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12825, "nodeType": "Block", "src": "23016:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c616464726573732c737472696e6729", "id": 12817, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "23060:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720", "typeString": "literal_string \"log(uint256,string,address,string)\""}, "value": "log(uint256,string,address,string)"}, {"id": 12818, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12805, "src": "23098:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12819, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12807, "src": "23102:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12820, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12809, "src": "23106:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12821, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12811, "src": "23110:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720", "typeString": "literal_string \"log(uint256,string,address,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12815, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "23036:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12816, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "23040:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "23036:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12822, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23036:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12814, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "23020:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12823, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23020:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12824, "nodeType": "ExpressionStatement", "src": "23020:94:49"}]}, "id": 12826, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "22938:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12812, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12805, "mutability": "mutable", "name": "p0", "nameLocation": "22950:2:49", "nodeType": "VariableDeclaration", "scope": 12826, "src": "22942:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12804, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22942:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12807, "mutability": "mutable", "name": "p1", "nameLocation": "22968:2:49", "nodeType": "VariableDeclaration", "scope": 12826, "src": "22954:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12806, "name": "string", "nodeType": "ElementaryTypeName", "src": "22954:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12809, "mutability": "mutable", "name": "p2", "nameLocation": "22980:2:49", "nodeType": "VariableDeclaration", "scope": 12826, "src": "22972:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12808, "name": "address", "nodeType": "ElementaryTypeName", "src": "22972:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12811, "mutability": "mutable", "name": "p3", "nameLocation": "22998:2:49", "nodeType": "VariableDeclaration", "scope": 12826, "src": "22984:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12810, "name": "string", "nodeType": "ElementaryTypeName", "src": "22984:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "22941:60:49"}, "returnParameters": {"id": 12813, "nodeType": "ParameterList", "parameters": [], "src": "23016:0:49"}, "scope": 18025, "src": "22929:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12848, "nodeType": "Block", "src": "23199:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c616464726573732c626f6f6c29", "id": 12840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "23243:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5", "typeString": "literal_string \"log(uint256,string,address,bool)\""}, "value": "log(uint256,string,address,bool)"}, {"id": 12841, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12828, "src": "23279:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12842, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12830, "src": "23283:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12843, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12832, "src": "23287:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12844, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12834, "src": "23291:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5", "typeString": "literal_string \"log(uint256,string,address,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12838, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "23219:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12839, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "23223:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "23219:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12845, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23219:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12837, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "23203:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12846, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23203:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12847, "nodeType": "ExpressionStatement", "src": "23203:92:49"}]}, "id": 12849, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "23130:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12835, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12828, "mutability": "mutable", "name": "p0", "nameLocation": "23142:2:49", "nodeType": "VariableDeclaration", "scope": 12849, "src": "23134:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12827, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23134:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12830, "mutability": "mutable", "name": "p1", "nameLocation": "23160:2:49", "nodeType": "VariableDeclaration", "scope": 12849, "src": "23146:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12829, "name": "string", "nodeType": "ElementaryTypeName", "src": "23146:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12832, "mutability": "mutable", "name": "p2", "nameLocation": "23172:2:49", "nodeType": "VariableDeclaration", "scope": 12849, "src": "23164:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12831, "name": "address", "nodeType": "ElementaryTypeName", "src": "23164:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12834, "mutability": "mutable", "name": "p3", "nameLocation": "23181:2:49", "nodeType": "VariableDeclaration", "scope": 12849, "src": "23176:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12833, "name": "bool", "nodeType": "ElementaryTypeName", "src": "23176:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "23133:51:49"}, "returnParameters": {"id": 12836, "nodeType": "ParameterList", "parameters": [], "src": "23199:0:49"}, "scope": 18025, "src": "23121:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12871, "nodeType": "Block", "src": "23383:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c737472696e672c616464726573732c6164647265737329", "id": 12863, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "23427:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd", "typeString": "literal_string \"log(uint256,string,address,address)\""}, "value": "log(uint256,string,address,address)"}, {"id": 12864, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12851, "src": "23466:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12865, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12853, "src": "23470:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12866, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12855, "src": "23474:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 12867, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12857, "src": "23478:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd", "typeString": "literal_string \"log(uint256,string,address,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12861, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "23403:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12862, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "23407:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "23403:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12868, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23403:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12860, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "23387:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12869, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23387:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12870, "nodeType": "ExpressionStatement", "src": "23387:95:49"}]}, "id": 12872, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "23311:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12858, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12851, "mutability": "mutable", "name": "p0", "nameLocation": "23323:2:49", "nodeType": "VariableDeclaration", "scope": 12872, "src": "23315:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12850, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23315:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12853, "mutability": "mutable", "name": "p1", "nameLocation": "23341:2:49", "nodeType": "VariableDeclaration", "scope": 12872, "src": "23327:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12852, "name": "string", "nodeType": "ElementaryTypeName", "src": "23327:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12855, "mutability": "mutable", "name": "p2", "nameLocation": "23353:2:49", "nodeType": "VariableDeclaration", "scope": 12872, "src": "23345:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12854, "name": "address", "nodeType": "ElementaryTypeName", "src": "23345:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 12857, "mutability": "mutable", "name": "p3", "nameLocation": "23365:2:49", "nodeType": "VariableDeclaration", "scope": 12872, "src": "23357:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12856, "name": "address", "nodeType": "ElementaryTypeName", "src": "23357:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "23314:54:49"}, "returnParameters": {"id": 12859, "nodeType": "ParameterList", "parameters": [], "src": "23383:0:49"}, "scope": 18025, "src": "23302:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12894, "nodeType": "Block", "src": "23561:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c75696e743235362c75696e7432353629", "id": 12886, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "23605:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4", "typeString": "literal_string \"log(uint256,bool,uint256,uint256)\""}, "value": "log(uint256,bool,uint256,uint256)"}, {"id": 12887, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12874, "src": "23642:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12888, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12876, "src": "23646:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12889, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12878, "src": "23650:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12890, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12880, "src": "23654:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4", "typeString": "literal_string \"log(uint256,bool,uint256,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12884, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "23581:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12885, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "23585:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "23581:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12891, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23581:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12883, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "23565:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12892, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23565:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12893, "nodeType": "ExpressionStatement", "src": "23565:93:49"}]}, "id": 12895, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "23498:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12881, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12874, "mutability": "mutable", "name": "p0", "nameLocation": "23510:2:49", "nodeType": "VariableDeclaration", "scope": 12895, "src": "23502:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12873, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23502:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12876, "mutability": "mutable", "name": "p1", "nameLocation": "23519:2:49", "nodeType": "VariableDeclaration", "scope": 12895, "src": "23514:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12875, "name": "bool", "nodeType": "ElementaryTypeName", "src": "23514:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12878, "mutability": "mutable", "name": "p2", "nameLocation": "23531:2:49", "nodeType": "VariableDeclaration", "scope": 12895, "src": "23523:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12877, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23523:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12880, "mutability": "mutable", "name": "p3", "nameLocation": "23543:2:49", "nodeType": "VariableDeclaration", "scope": 12895, "src": "23535:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12879, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23535:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "23501:45:49"}, "returnParameters": {"id": 12882, "nodeType": "ParameterList", "parameters": [], "src": "23561:0:49"}, "scope": 18025, "src": "23489:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12917, "nodeType": "Block", "src": "23743:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c75696e743235362c737472696e6729", "id": 12909, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "23787:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b", "typeString": "literal_string \"log(uint256,bool,uint256,string)\""}, "value": "log(uint256,bool,uint256,string)"}, {"id": 12910, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12897, "src": "23823:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12911, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12899, "src": "23827:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12912, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12901, "src": "23831:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12913, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12903, "src": "23835:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b", "typeString": "literal_string \"log(uint256,bool,uint256,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12907, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "23763:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12908, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "23767:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "23763:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12914, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23763:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12906, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "23747:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12915, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23747:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12916, "nodeType": "ExpressionStatement", "src": "23747:92:49"}]}, "id": 12918, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "23674:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12904, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12897, "mutability": "mutable", "name": "p0", "nameLocation": "23686:2:49", "nodeType": "VariableDeclaration", "scope": 12918, "src": "23678:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12896, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23678:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12899, "mutability": "mutable", "name": "p1", "nameLocation": "23695:2:49", "nodeType": "VariableDeclaration", "scope": 12918, "src": "23690:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12898, "name": "bool", "nodeType": "ElementaryTypeName", "src": "23690:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12901, "mutability": "mutable", "name": "p2", "nameLocation": "23707:2:49", "nodeType": "VariableDeclaration", "scope": 12918, "src": "23699:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12900, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23699:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12903, "mutability": "mutable", "name": "p3", "nameLocation": "23725:2:49", "nodeType": "VariableDeclaration", "scope": 12918, "src": "23711:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12902, "name": "string", "nodeType": "ElementaryTypeName", "src": "23711:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "23677:51:49"}, "returnParameters": {"id": 12905, "nodeType": "ParameterList", "parameters": [], "src": "23743:0:49"}, "scope": 18025, "src": "23665:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12940, "nodeType": "Block", "src": "23915:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c75696e743235362c626f6f6c29", "id": 12932, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "23959:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1", "typeString": "literal_string \"log(uint256,bool,uint256,bool)\""}, "value": "log(uint256,bool,uint256,bool)"}, {"id": 12933, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12920, "src": "23993:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12934, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12922, "src": "23997:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12935, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12924, "src": "24001:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12936, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12926, "src": "24005:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1", "typeString": "literal_string \"log(uint256,bool,uint256,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 12930, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "23935:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12931, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "23939:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "23935:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12937, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23935:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12929, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "23919:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12938, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23919:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12939, "nodeType": "ExpressionStatement", "src": "23919:90:49"}]}, "id": 12941, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "23855:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12927, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12920, "mutability": "mutable", "name": "p0", "nameLocation": "23867:2:49", "nodeType": "VariableDeclaration", "scope": 12941, "src": "23859:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12919, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23859:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12922, "mutability": "mutable", "name": "p1", "nameLocation": "23876:2:49", "nodeType": "VariableDeclaration", "scope": 12941, "src": "23871:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12921, "name": "bool", "nodeType": "ElementaryTypeName", "src": "23871:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12924, "mutability": "mutable", "name": "p2", "nameLocation": "23888:2:49", "nodeType": "VariableDeclaration", "scope": 12941, "src": "23880:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23880:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12926, "mutability": "mutable", "name": "p3", "nameLocation": "23897:2:49", "nodeType": "VariableDeclaration", "scope": 12941, "src": "23892:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12925, "name": "bool", "nodeType": "ElementaryTypeName", "src": "23892:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "23858:42:49"}, "returnParameters": {"id": 12928, "nodeType": "ParameterList", "parameters": [], "src": "23915:0:49"}, "scope": 18025, "src": "23846:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12963, "nodeType": "Block", "src": "24088:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c75696e743235362c6164647265737329", "id": 12955, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "24132:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b", "typeString": "literal_string \"log(uint256,bool,uint256,address)\""}, "value": "log(uint256,bool,uint256,address)"}, {"id": 12956, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12943, "src": "24169:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12957, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12945, "src": "24173:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12958, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12947, "src": "24177:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12959, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12949, "src": "24181:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b", "typeString": "literal_string \"log(uint256,bool,uint256,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 12953, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "24108:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12954, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "24112:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "24108:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12960, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24108:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12952, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "24092:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12961, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24092:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12962, "nodeType": "ExpressionStatement", "src": "24092:93:49"}]}, "id": 12964, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "24025:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12950, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12943, "mutability": "mutable", "name": "p0", "nameLocation": "24037:2:49", "nodeType": "VariableDeclaration", "scope": 12964, "src": "24029:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12942, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24029:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12945, "mutability": "mutable", "name": "p1", "nameLocation": "24046:2:49", "nodeType": "VariableDeclaration", "scope": 12964, "src": "24041:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12944, "name": "bool", "nodeType": "ElementaryTypeName", "src": "24041:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12947, "mutability": "mutable", "name": "p2", "nameLocation": "24058:2:49", "nodeType": "VariableDeclaration", "scope": 12964, "src": "24050:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12946, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24050:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12949, "mutability": "mutable", "name": "p3", "nameLocation": "24070:2:49", "nodeType": "VariableDeclaration", "scope": 12964, "src": "24062:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 12948, "name": "address", "nodeType": "ElementaryTypeName", "src": "24062:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "24028:45:49"}, "returnParameters": {"id": 12951, "nodeType": "ParameterList", "parameters": [], "src": "24088:0:49"}, "scope": 18025, "src": "24016:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 12986, "nodeType": "Block", "src": "24270:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c737472696e672c75696e7432353629", "id": 12978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "24314:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8", "typeString": "literal_string \"log(uint256,bool,string,uint256)\""}, "value": "log(uint256,bool,string,uint256)"}, {"id": 12979, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12966, "src": "24350:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 12980, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12968, "src": "24354:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 12981, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12970, "src": "24358:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 12982, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12972, "src": "24362:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8", "typeString": "literal_string \"log(uint256,bool,string,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 12976, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "24290:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 12977, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "24294:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "24290:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 12983, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24290:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12975, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "24274:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 12984, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24274:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 12985, "nodeType": "ExpressionStatement", "src": "24274:92:49"}]}, "id": 12987, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "24201:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12973, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12966, "mutability": "mutable", "name": "p0", "nameLocation": "24213:2:49", "nodeType": "VariableDeclaration", "scope": 12987, "src": "24205:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12965, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24205:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12968, "mutability": "mutable", "name": "p1", "nameLocation": "24222:2:49", "nodeType": "VariableDeclaration", "scope": 12987, "src": "24217:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12967, "name": "bool", "nodeType": "ElementaryTypeName", "src": "24217:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12970, "mutability": "mutable", "name": "p2", "nameLocation": "24240:2:49", "nodeType": "VariableDeclaration", "scope": 12987, "src": "24226:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12969, "name": "string", "nodeType": "ElementaryTypeName", "src": "24226:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12972, "mutability": "mutable", "name": "p3", "nameLocation": "24252:2:49", "nodeType": "VariableDeclaration", "scope": 12987, "src": "24244:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12971, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24244:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "24204:51:49"}, "returnParameters": {"id": 12974, "nodeType": "ParameterList", "parameters": [], "src": "24270:0:49"}, "scope": 18025, "src": "24192:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13009, "nodeType": "Block", "src": "24457:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c737472696e672c737472696e6729", "id": 13001, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "24501:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd", "typeString": "literal_string \"log(uint256,bool,string,string)\""}, "value": "log(uint256,bool,string,string)"}, {"id": 13002, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12989, "src": "24536:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13003, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12991, "src": "24540:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13004, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12993, "src": "24544:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13005, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12995, "src": "24548:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd", "typeString": "literal_string \"log(uint256,bool,string,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 12999, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "24477:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13000, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "24481:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "24477:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13006, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24477:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 12998, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "24461:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13007, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24461:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13008, "nodeType": "ExpressionStatement", "src": "24461:91:49"}]}, "id": 13010, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "24382:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 12996, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 12989, "mutability": "mutable", "name": "p0", "nameLocation": "24394:2:49", "nodeType": "VariableDeclaration", "scope": 13010, "src": "24386:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 12988, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24386:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 12991, "mutability": "mutable", "name": "p1", "nameLocation": "24403:2:49", "nodeType": "VariableDeclaration", "scope": 13010, "src": "24398:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 12990, "name": "bool", "nodeType": "ElementaryTypeName", "src": "24398:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 12993, "mutability": "mutable", "name": "p2", "nameLocation": "24421:2:49", "nodeType": "VariableDeclaration", "scope": 13010, "src": "24407:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12992, "name": "string", "nodeType": "ElementaryTypeName", "src": "24407:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 12995, "mutability": "mutable", "name": "p3", "nameLocation": "24439:2:49", "nodeType": "VariableDeclaration", "scope": 13010, "src": "24425:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 12994, "name": "string", "nodeType": "ElementaryTypeName", "src": "24425:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "24385:57:49"}, "returnParameters": {"id": 12997, "nodeType": "ParameterList", "parameters": [], "src": "24457:0:49"}, "scope": 18025, "src": "24373:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13032, "nodeType": "Block", "src": "24634:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c737472696e672c626f6f6c29", "id": 13024, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "24678:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad", "typeString": "literal_string \"log(uint256,bool,string,bool)\""}, "value": "log(uint256,bool,string,bool)"}, {"id": 13025, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13012, "src": "24711:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13026, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13014, "src": "24715:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13027, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13016, "src": "24719:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13028, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13018, "src": "24723:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad", "typeString": "literal_string \"log(uint256,bool,string,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13022, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "24654:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13023, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "24658:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "24654:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13029, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24654:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13021, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "24638:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13030, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24638:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13031, "nodeType": "ExpressionStatement", "src": "24638:89:49"}]}, "id": 13033, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "24568:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13019, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13012, "mutability": "mutable", "name": "p0", "nameLocation": "24580:2:49", "nodeType": "VariableDeclaration", "scope": 13033, "src": "24572:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13011, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24572:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13014, "mutability": "mutable", "name": "p1", "nameLocation": "24589:2:49", "nodeType": "VariableDeclaration", "scope": 13033, "src": "24584:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13013, "name": "bool", "nodeType": "ElementaryTypeName", "src": "24584:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13016, "mutability": "mutable", "name": "p2", "nameLocation": "24607:2:49", "nodeType": "VariableDeclaration", "scope": 13033, "src": "24593:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13015, "name": "string", "nodeType": "ElementaryTypeName", "src": "24593:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13018, "mutability": "mutable", "name": "p3", "nameLocation": "24616:2:49", "nodeType": "VariableDeclaration", "scope": 13033, "src": "24611:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13017, "name": "bool", "nodeType": "ElementaryTypeName", "src": "24611:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "24571:48:49"}, "returnParameters": {"id": 13020, "nodeType": "ParameterList", "parameters": [], "src": "24634:0:49"}, "scope": 18025, "src": "24559:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13055, "nodeType": "Block", "src": "24812:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c737472696e672c6164647265737329", "id": 13047, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "24856:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5", "typeString": "literal_string \"log(uint256,bool,string,address)\""}, "value": "log(uint256,bool,string,address)"}, {"id": 13048, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13035, "src": "24892:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13049, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13037, "src": "24896:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13050, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13039, "src": "24900:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13051, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13041, "src": "24904:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5", "typeString": "literal_string \"log(uint256,bool,string,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13045, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "24832:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13046, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "24836:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "24832:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13052, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24832:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13044, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "24816:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13053, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24816:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13054, "nodeType": "ExpressionStatement", "src": "24816:92:49"}]}, "id": 13056, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "24743:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13042, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13035, "mutability": "mutable", "name": "p0", "nameLocation": "24755:2:49", "nodeType": "VariableDeclaration", "scope": 13056, "src": "24747:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13034, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24747:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13037, "mutability": "mutable", "name": "p1", "nameLocation": "24764:2:49", "nodeType": "VariableDeclaration", "scope": 13056, "src": "24759:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13036, "name": "bool", "nodeType": "ElementaryTypeName", "src": "24759:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13039, "mutability": "mutable", "name": "p2", "nameLocation": "24782:2:49", "nodeType": "VariableDeclaration", "scope": 13056, "src": "24768:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13038, "name": "string", "nodeType": "ElementaryTypeName", "src": "24768:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13041, "mutability": "mutable", "name": "p3", "nameLocation": "24794:2:49", "nodeType": "VariableDeclaration", "scope": 13056, "src": "24786:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13040, "name": "address", "nodeType": "ElementaryTypeName", "src": "24786:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "24746:51:49"}, "returnParameters": {"id": 13043, "nodeType": "ParameterList", "parameters": [], "src": "24812:0:49"}, "scope": 18025, "src": "24734:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13078, "nodeType": "Block", "src": "24984:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c626f6f6c2c75696e7432353629", "id": 13070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25028:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1", "typeString": "literal_string \"log(uint256,bool,bool,uint256)\""}, "value": "log(uint256,bool,bool,uint256)"}, {"id": 13071, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13058, "src": "25062:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13072, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13060, "src": "25066:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13073, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13062, "src": "25070:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13074, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13064, "src": "25074:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1", "typeString": "literal_string \"log(uint256,bool,bool,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13068, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "25004:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13069, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "25008:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "25004:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13075, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25004:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13067, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "24988:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13076, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24988:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13077, "nodeType": "ExpressionStatement", "src": "24988:90:49"}]}, "id": 13079, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "24924:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13065, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13058, "mutability": "mutable", "name": "p0", "nameLocation": "24936:2:49", "nodeType": "VariableDeclaration", "scope": 13079, "src": "24928:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13057, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24928:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13060, "mutability": "mutable", "name": "p1", "nameLocation": "24945:2:49", "nodeType": "VariableDeclaration", "scope": 13079, "src": "24940:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13059, "name": "bool", "nodeType": "ElementaryTypeName", "src": "24940:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13062, "mutability": "mutable", "name": "p2", "nameLocation": "24954:2:49", "nodeType": "VariableDeclaration", "scope": 13079, "src": "24949:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13061, "name": "bool", "nodeType": "ElementaryTypeName", "src": "24949:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13064, "mutability": "mutable", "name": "p3", "nameLocation": "24966:2:49", "nodeType": "VariableDeclaration", "scope": 13079, "src": "24958:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13063, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24958:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "24927:42:49"}, "returnParameters": {"id": 13066, "nodeType": "ParameterList", "parameters": [], "src": "24984:0:49"}, "scope": 18025, "src": "24915:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13101, "nodeType": "Block", "src": "25160:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c626f6f6c2c737472696e6729", "id": 13093, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25204:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439", "typeString": "literal_string \"log(uint256,bool,bool,string)\""}, "value": "log(uint256,bool,bool,string)"}, {"id": 13094, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13081, "src": "25237:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13095, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13083, "src": "25241:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13096, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13085, "src": "25245:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13097, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13087, "src": "25249:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439", "typeString": "literal_string \"log(uint256,bool,bool,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13091, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "25180:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13092, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "25184:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "25180:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13098, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25180:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13090, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "25164:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13099, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25164:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13100, "nodeType": "ExpressionStatement", "src": "25164:89:49"}]}, "id": 13102, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "25094:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13088, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13081, "mutability": "mutable", "name": "p0", "nameLocation": "25106:2:49", "nodeType": "VariableDeclaration", "scope": 13102, "src": "25098:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13080, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25098:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13083, "mutability": "mutable", "name": "p1", "nameLocation": "25115:2:49", "nodeType": "VariableDeclaration", "scope": 13102, "src": "25110:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13082, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25110:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13085, "mutability": "mutable", "name": "p2", "nameLocation": "25124:2:49", "nodeType": "VariableDeclaration", "scope": 13102, "src": "25119:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13084, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25119:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13087, "mutability": "mutable", "name": "p3", "nameLocation": "25142:2:49", "nodeType": "VariableDeclaration", "scope": 13102, "src": "25128:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13086, "name": "string", "nodeType": "ElementaryTypeName", "src": "25128:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "25097:48:49"}, "returnParameters": {"id": 13089, "nodeType": "ParameterList", "parameters": [], "src": "25160:0:49"}, "scope": 18025, "src": "25085:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13124, "nodeType": "Block", "src": "25326:95:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c626f6f6c2c626f6f6c29", "id": 13116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25370:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473", "typeString": "literal_string \"log(uint256,bool,bool,bool)\""}, "value": "log(uint256,bool,bool,bool)"}, {"id": 13117, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13104, "src": "25401:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13118, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13106, "src": "25405:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13119, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13108, "src": "25409:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13120, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13110, "src": "25413:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473", "typeString": "literal_string \"log(uint256,bool,bool,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13114, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "25346:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13115, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "25350:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "25346:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13121, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25346:70:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13113, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "25330:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13122, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25330:87:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13123, "nodeType": "ExpressionStatement", "src": "25330:87:49"}]}, "id": 13125, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "25269:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13111, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13104, "mutability": "mutable", "name": "p0", "nameLocation": "25281:2:49", "nodeType": "VariableDeclaration", "scope": 13125, "src": "25273:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13103, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25273:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13106, "mutability": "mutable", "name": "p1", "nameLocation": "25290:2:49", "nodeType": "VariableDeclaration", "scope": 13125, "src": "25285:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13105, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25285:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13108, "mutability": "mutable", "name": "p2", "nameLocation": "25299:2:49", "nodeType": "VariableDeclaration", "scope": 13125, "src": "25294:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13107, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25294:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13110, "mutability": "mutable", "name": "p3", "nameLocation": "25308:2:49", "nodeType": "VariableDeclaration", "scope": 13125, "src": "25303:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13109, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25303:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "25272:39:49"}, "returnParameters": {"id": 13112, "nodeType": "ParameterList", "parameters": [], "src": "25326:0:49"}, "scope": 18025, "src": "25260:161:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13147, "nodeType": "Block", "src": "25493:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c626f6f6c2c6164647265737329", "id": 13139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25537:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31", "typeString": "literal_string \"log(uint256,bool,bool,address)\""}, "value": "log(uint256,bool,bool,address)"}, {"id": 13140, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13127, "src": "25571:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13141, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13129, "src": "25575:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13142, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13131, "src": "25579:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13143, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13133, "src": "25583:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31", "typeString": "literal_string \"log(uint256,bool,bool,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13137, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "25513:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13138, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "25517:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "25513:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13144, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25513:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13136, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "25497:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13145, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25497:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13146, "nodeType": "ExpressionStatement", "src": "25497:90:49"}]}, "id": 13148, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "25433:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13134, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13127, "mutability": "mutable", "name": "p0", "nameLocation": "25445:2:49", "nodeType": "VariableDeclaration", "scope": 13148, "src": "25437:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13126, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25437:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13129, "mutability": "mutable", "name": "p1", "nameLocation": "25454:2:49", "nodeType": "VariableDeclaration", "scope": 13148, "src": "25449:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13128, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25449:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13131, "mutability": "mutable", "name": "p2", "nameLocation": "25463:2:49", "nodeType": "VariableDeclaration", "scope": 13148, "src": "25458:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13130, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25458:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13133, "mutability": "mutable", "name": "p3", "nameLocation": "25475:2:49", "nodeType": "VariableDeclaration", "scope": 13148, "src": "25467:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13132, "name": "address", "nodeType": "ElementaryTypeName", "src": "25467:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "25436:42:49"}, "returnParameters": {"id": 13135, "nodeType": "ParameterList", "parameters": [], "src": "25493:0:49"}, "scope": 18025, "src": "25424:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13170, "nodeType": "Block", "src": "25666:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c616464726573732c75696e7432353629", "id": 13162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25710:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88", "typeString": "literal_string \"log(uint256,bool,address,uint256)\""}, "value": "log(uint256,bool,address,uint256)"}, {"id": 13163, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13150, "src": "25747:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13164, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13152, "src": "25751:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13165, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13154, "src": "25755:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13166, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13156, "src": "25759:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88", "typeString": "literal_string \"log(uint256,bool,address,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13160, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "25686:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13161, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "25690:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "25686:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13167, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25686:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13159, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "25670:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13168, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25670:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13169, "nodeType": "ExpressionStatement", "src": "25670:93:49"}]}, "id": 13171, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "25603:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13157, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13150, "mutability": "mutable", "name": "p0", "nameLocation": "25615:2:49", "nodeType": "VariableDeclaration", "scope": 13171, "src": "25607:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13149, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25607:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13152, "mutability": "mutable", "name": "p1", "nameLocation": "25624:2:49", "nodeType": "VariableDeclaration", "scope": 13171, "src": "25619:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13151, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25619:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13154, "mutability": "mutable", "name": "p2", "nameLocation": "25636:2:49", "nodeType": "VariableDeclaration", "scope": 13171, "src": "25628:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13153, "name": "address", "nodeType": "ElementaryTypeName", "src": "25628:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13156, "mutability": "mutable", "name": "p3", "nameLocation": "25648:2:49", "nodeType": "VariableDeclaration", "scope": 13171, "src": "25640:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13155, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25640:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "25606:45:49"}, "returnParameters": {"id": 13158, "nodeType": "ParameterList", "parameters": [], "src": "25666:0:49"}, "scope": 18025, "src": "25594:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13193, "nodeType": "Block", "src": "25848:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c616464726573732c737472696e6729", "id": 13185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25892:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461", "typeString": "literal_string \"log(uint256,bool,address,string)\""}, "value": "log(uint256,bool,address,string)"}, {"id": 13186, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13173, "src": "25928:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13187, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13175, "src": "25932:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13188, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13177, "src": "25936:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13189, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13179, "src": "25940:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461", "typeString": "literal_string \"log(uint256,bool,address,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13183, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "25868:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13184, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "25872:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "25868:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13190, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25868:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13182, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "25852:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13191, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "25852:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13192, "nodeType": "ExpressionStatement", "src": "25852:92:49"}]}, "id": 13194, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "25779:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13180, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13173, "mutability": "mutable", "name": "p0", "nameLocation": "25791:2:49", "nodeType": "VariableDeclaration", "scope": 13194, "src": "25783:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13172, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25783:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13175, "mutability": "mutable", "name": "p1", "nameLocation": "25800:2:49", "nodeType": "VariableDeclaration", "scope": 13194, "src": "25795:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13174, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25795:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13177, "mutability": "mutable", "name": "p2", "nameLocation": "25812:2:49", "nodeType": "VariableDeclaration", "scope": 13194, "src": "25804:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13176, "name": "address", "nodeType": "ElementaryTypeName", "src": "25804:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13179, "mutability": "mutable", "name": "p3", "nameLocation": "25830:2:49", "nodeType": "VariableDeclaration", "scope": 13194, "src": "25816:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13178, "name": "string", "nodeType": "ElementaryTypeName", "src": "25816:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "25782:51:49"}, "returnParameters": {"id": 13181, "nodeType": "ParameterList", "parameters": [], "src": "25848:0:49"}, "scope": 18025, "src": "25770:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13216, "nodeType": "Block", "src": "26020:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c616464726573732c626f6f6c29", "id": 13208, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "26064:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a", "typeString": "literal_string \"log(uint256,bool,address,bool)\""}, "value": "log(uint256,bool,address,bool)"}, {"id": 13209, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13196, "src": "26098:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13210, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13198, "src": "26102:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13211, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13200, "src": "26106:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13212, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13202, "src": "26110:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a", "typeString": "literal_string \"log(uint256,bool,address,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13206, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "26040:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13207, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "26044:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "26040:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13213, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26040:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13205, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "26024:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13214, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26024:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13215, "nodeType": "ExpressionStatement", "src": "26024:90:49"}]}, "id": 13217, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "25960:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13203, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13196, "mutability": "mutable", "name": "p0", "nameLocation": "25972:2:49", "nodeType": "VariableDeclaration", "scope": 13217, "src": "25964:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13195, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25964:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13198, "mutability": "mutable", "name": "p1", "nameLocation": "25981:2:49", "nodeType": "VariableDeclaration", "scope": 13217, "src": "25976:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13197, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25976:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13200, "mutability": "mutable", "name": "p2", "nameLocation": "25993:2:49", "nodeType": "VariableDeclaration", "scope": 13217, "src": "25985:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13199, "name": "address", "nodeType": "ElementaryTypeName", "src": "25985:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13202, "mutability": "mutable", "name": "p3", "nameLocation": "26002:2:49", "nodeType": "VariableDeclaration", "scope": 13217, "src": "25997:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13201, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25997:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "25963:42:49"}, "returnParameters": {"id": 13204, "nodeType": "ParameterList", "parameters": [], "src": "26020:0:49"}, "scope": 18025, "src": "25951:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13239, "nodeType": "Block", "src": "26193:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c626f6f6c2c616464726573732c6164647265737329", "id": 13231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "26237:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190", "typeString": "literal_string \"log(uint256,bool,address,address)\""}, "value": "log(uint256,bool,address,address)"}, {"id": 13232, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13219, "src": "26274:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13233, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13221, "src": "26278:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13234, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13223, "src": "26282:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13235, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13225, "src": "26286:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190", "typeString": "literal_string \"log(uint256,bool,address,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13229, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "26213:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13230, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "26217:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "26213:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13236, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26213:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13228, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "26197:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13237, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26197:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13238, "nodeType": "ExpressionStatement", "src": "26197:93:49"}]}, "id": 13240, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "26130:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13226, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13219, "mutability": "mutable", "name": "p0", "nameLocation": "26142:2:49", "nodeType": "VariableDeclaration", "scope": 13240, "src": "26134:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13218, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26134:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13221, "mutability": "mutable", "name": "p1", "nameLocation": "26151:2:49", "nodeType": "VariableDeclaration", "scope": 13240, "src": "26146:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13220, "name": "bool", "nodeType": "ElementaryTypeName", "src": "26146:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13223, "mutability": "mutable", "name": "p2", "nameLocation": "26163:2:49", "nodeType": "VariableDeclaration", "scope": 13240, "src": "26155:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13222, "name": "address", "nodeType": "ElementaryTypeName", "src": "26155:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13225, "mutability": "mutable", "name": "p3", "nameLocation": "26175:2:49", "nodeType": "VariableDeclaration", "scope": 13240, "src": "26167:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13224, "name": "address", "nodeType": "ElementaryTypeName", "src": "26167:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "26133:45:49"}, "returnParameters": {"id": 13227, "nodeType": "ParameterList", "parameters": [], "src": "26193:0:49"}, "scope": 18025, "src": "26121:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13262, "nodeType": "Block", "src": "26372:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c75696e743235362c75696e7432353629", "id": 13254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "26416:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a", "typeString": "literal_string \"log(uint256,address,uint256,uint256)\""}, "value": "log(uint256,address,uint256,uint256)"}, {"id": 13255, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13242, "src": "26456:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13256, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13244, "src": "26460:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13257, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13246, "src": "26464:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13258, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13248, "src": "26468:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a", "typeString": "literal_string \"log(uint256,address,uint256,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13252, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "26392:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13253, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "26396:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "26392:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13259, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26392:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13251, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "26376:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13260, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26376:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13261, "nodeType": "ExpressionStatement", "src": "26376:96:49"}]}, "id": 13263, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "26306:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13249, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13242, "mutability": "mutable", "name": "p0", "nameLocation": "26318:2:49", "nodeType": "VariableDeclaration", "scope": 13263, "src": "26310:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13241, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26310:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13244, "mutability": "mutable", "name": "p1", "nameLocation": "26330:2:49", "nodeType": "VariableDeclaration", "scope": 13263, "src": "26322:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13243, "name": "address", "nodeType": "ElementaryTypeName", "src": "26322:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13246, "mutability": "mutable", "name": "p2", "nameLocation": "26342:2:49", "nodeType": "VariableDeclaration", "scope": 13263, "src": "26334:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13245, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26334:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13248, "mutability": "mutable", "name": "p3", "nameLocation": "26354:2:49", "nodeType": "VariableDeclaration", "scope": 13263, "src": "26346:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13247, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26346:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "26309:48:49"}, "returnParameters": {"id": 13250, "nodeType": "ParameterList", "parameters": [], "src": "26372:0:49"}, "scope": 18025, "src": "26297:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13285, "nodeType": "Block", "src": "26560:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c75696e743235362c737472696e6729", "id": 13277, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "26604:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd", "typeString": "literal_string \"log(uint256,address,uint256,string)\""}, "value": "log(uint256,address,uint256,string)"}, {"id": 13278, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13265, "src": "26643:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13279, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13267, "src": "26647:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13280, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13269, "src": "26651:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13281, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13271, "src": "26655:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd", "typeString": "literal_string \"log(uint256,address,uint256,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13275, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "26580:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13276, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "26584:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "26580:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13282, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26580:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13274, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "26564:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13283, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26564:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13284, "nodeType": "ExpressionStatement", "src": "26564:95:49"}]}, "id": 13286, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "26488:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13272, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13265, "mutability": "mutable", "name": "p0", "nameLocation": "26500:2:49", "nodeType": "VariableDeclaration", "scope": 13286, "src": "26492:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13264, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26492:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13267, "mutability": "mutable", "name": "p1", "nameLocation": "26512:2:49", "nodeType": "VariableDeclaration", "scope": 13286, "src": "26504:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13266, "name": "address", "nodeType": "ElementaryTypeName", "src": "26504:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13269, "mutability": "mutable", "name": "p2", "nameLocation": "26524:2:49", "nodeType": "VariableDeclaration", "scope": 13286, "src": "26516:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13268, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26516:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13271, "mutability": "mutable", "name": "p3", "nameLocation": "26542:2:49", "nodeType": "VariableDeclaration", "scope": 13286, "src": "26528:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13270, "name": "string", "nodeType": "ElementaryTypeName", "src": "26528:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "26491:54:49"}, "returnParameters": {"id": 13273, "nodeType": "ParameterList", "parameters": [], "src": "26560:0:49"}, "scope": 18025, "src": "26479:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13308, "nodeType": "Block", "src": "26738:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c75696e743235362c626f6f6c29", "id": 13300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "26782:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f", "typeString": "literal_string \"log(uint256,address,uint256,bool)\""}, "value": "log(uint256,address,uint256,bool)"}, {"id": 13301, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13288, "src": "26819:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13302, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13290, "src": "26823:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13303, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13292, "src": "26827:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13304, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13294, "src": "26831:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f", "typeString": "literal_string \"log(uint256,address,uint256,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13298, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "26758:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13299, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "26762:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "26758:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13305, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26758:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13297, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "26742:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26742:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13307, "nodeType": "ExpressionStatement", "src": "26742:93:49"}]}, "id": 13309, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "26675:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13295, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13288, "mutability": "mutable", "name": "p0", "nameLocation": "26687:2:49", "nodeType": "VariableDeclaration", "scope": 13309, "src": "26679:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13287, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26679:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13290, "mutability": "mutable", "name": "p1", "nameLocation": "26699:2:49", "nodeType": "VariableDeclaration", "scope": 13309, "src": "26691:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13289, "name": "address", "nodeType": "ElementaryTypeName", "src": "26691:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13292, "mutability": "mutable", "name": "p2", "nameLocation": "26711:2:49", "nodeType": "VariableDeclaration", "scope": 13309, "src": "26703:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13291, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26703:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13294, "mutability": "mutable", "name": "p3", "nameLocation": "26720:2:49", "nodeType": "VariableDeclaration", "scope": 13309, "src": "26715:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13293, "name": "bool", "nodeType": "ElementaryTypeName", "src": "26715:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "26678:45:49"}, "returnParameters": {"id": 13296, "nodeType": "ParameterList", "parameters": [], "src": "26738:0:49"}, "scope": 18025, "src": "26666:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13331, "nodeType": "Block", "src": "26917:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c75696e743235362c6164647265737329", "id": 13323, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "26961:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379", "typeString": "literal_string \"log(uint256,address,uint256,address)\""}, "value": "log(uint256,address,uint256,address)"}, {"id": 13324, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13311, "src": "27001:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13325, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13313, "src": "27005:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13326, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13315, "src": "27009:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13327, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13317, "src": "27013:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379", "typeString": "literal_string \"log(uint256,address,uint256,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13321, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "26937:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13322, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "26941:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "26937:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13328, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26937:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13320, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "26921:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13329, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "26921:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13330, "nodeType": "ExpressionStatement", "src": "26921:96:49"}]}, "id": 13332, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "26851:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13318, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13311, "mutability": "mutable", "name": "p0", "nameLocation": "26863:2:49", "nodeType": "VariableDeclaration", "scope": 13332, "src": "26855:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13310, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26855:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13313, "mutability": "mutable", "name": "p1", "nameLocation": "26875:2:49", "nodeType": "VariableDeclaration", "scope": 13332, "src": "26867:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13312, "name": "address", "nodeType": "ElementaryTypeName", "src": "26867:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13315, "mutability": "mutable", "name": "p2", "nameLocation": "26887:2:49", "nodeType": "VariableDeclaration", "scope": 13332, "src": "26879:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13314, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26879:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13317, "mutability": "mutable", "name": "p3", "nameLocation": "26899:2:49", "nodeType": "VariableDeclaration", "scope": 13332, "src": "26891:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13316, "name": "address", "nodeType": "ElementaryTypeName", "src": "26891:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "26854:48:49"}, "returnParameters": {"id": 13319, "nodeType": "ParameterList", "parameters": [], "src": "26917:0:49"}, "scope": 18025, "src": "26842:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13354, "nodeType": "Block", "src": "27105:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c737472696e672c75696e7432353629", "id": 13346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27149:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0", "typeString": "literal_string \"log(uint256,address,string,uint256)\""}, "value": "log(uint256,address,string,uint256)"}, {"id": 13347, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13334, "src": "27188:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13348, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13336, "src": "27192:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13349, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13338, "src": "27196:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13350, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13340, "src": "27200:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0", "typeString": "literal_string \"log(uint256,address,string,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13344, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "27125:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13345, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "27129:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "27125:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13351, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27125:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13343, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "27109:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13352, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27109:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13353, "nodeType": "ExpressionStatement", "src": "27109:95:49"}]}, "id": 13355, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "27033:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13341, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13334, "mutability": "mutable", "name": "p0", "nameLocation": "27045:2:49", "nodeType": "VariableDeclaration", "scope": 13355, "src": "27037:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13333, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27037:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13336, "mutability": "mutable", "name": "p1", "nameLocation": "27057:2:49", "nodeType": "VariableDeclaration", "scope": 13355, "src": "27049:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13335, "name": "address", "nodeType": "ElementaryTypeName", "src": "27049:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13338, "mutability": "mutable", "name": "p2", "nameLocation": "27075:2:49", "nodeType": "VariableDeclaration", "scope": 13355, "src": "27061:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13337, "name": "string", "nodeType": "ElementaryTypeName", "src": "27061:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13340, "mutability": "mutable", "name": "p3", "nameLocation": "27087:2:49", "nodeType": "VariableDeclaration", "scope": 13355, "src": "27079:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13339, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27079:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "27036:54:49"}, "returnParameters": {"id": 13342, "nodeType": "ParameterList", "parameters": [], "src": "27105:0:49"}, "scope": 18025, "src": "27024:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13377, "nodeType": "Block", "src": "27298:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c737472696e672c737472696e6729", "id": 13369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27342:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b", "typeString": "literal_string \"log(uint256,address,string,string)\""}, "value": "log(uint256,address,string,string)"}, {"id": 13370, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13357, "src": "27380:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13371, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13359, "src": "27384:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13372, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13361, "src": "27388:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13373, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13363, "src": "27392:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b", "typeString": "literal_string \"log(uint256,address,string,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13367, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "27318:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13368, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "27322:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "27318:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13374, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27318:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13366, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "27302:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13375, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27302:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13376, "nodeType": "ExpressionStatement", "src": "27302:94:49"}]}, "id": 13378, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "27220:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13364, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13357, "mutability": "mutable", "name": "p0", "nameLocation": "27232:2:49", "nodeType": "VariableDeclaration", "scope": 13378, "src": "27224:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13356, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27224:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13359, "mutability": "mutable", "name": "p1", "nameLocation": "27244:2:49", "nodeType": "VariableDeclaration", "scope": 13378, "src": "27236:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13358, "name": "address", "nodeType": "ElementaryTypeName", "src": "27236:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13361, "mutability": "mutable", "name": "p2", "nameLocation": "27262:2:49", "nodeType": "VariableDeclaration", "scope": 13378, "src": "27248:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13360, "name": "string", "nodeType": "ElementaryTypeName", "src": "27248:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13363, "mutability": "mutable", "name": "p3", "nameLocation": "27280:2:49", "nodeType": "VariableDeclaration", "scope": 13378, "src": "27266:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13362, "name": "string", "nodeType": "ElementaryTypeName", "src": "27266:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "27223:60:49"}, "returnParameters": {"id": 13365, "nodeType": "ParameterList", "parameters": [], "src": "27298:0:49"}, "scope": 18025, "src": "27211:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13400, "nodeType": "Block", "src": "27481:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c737472696e672c626f6f6c29", "id": 13392, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27525:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b", "typeString": "literal_string \"log(uint256,address,string,bool)\""}, "value": "log(uint256,address,string,bool)"}, {"id": 13393, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13380, "src": "27561:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13394, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13382, "src": "27565:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13395, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13384, "src": "27569:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13396, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13386, "src": "27573:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b", "typeString": "literal_string \"log(uint256,address,string,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13390, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "27501:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13391, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "27505:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "27501:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13397, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27501:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13389, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "27485:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13398, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27485:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13399, "nodeType": "ExpressionStatement", "src": "27485:92:49"}]}, "id": 13401, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "27412:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13387, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13380, "mutability": "mutable", "name": "p0", "nameLocation": "27424:2:49", "nodeType": "VariableDeclaration", "scope": 13401, "src": "27416:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13379, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27416:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13382, "mutability": "mutable", "name": "p1", "nameLocation": "27436:2:49", "nodeType": "VariableDeclaration", "scope": 13401, "src": "27428:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13381, "name": "address", "nodeType": "ElementaryTypeName", "src": "27428:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13384, "mutability": "mutable", "name": "p2", "nameLocation": "27454:2:49", "nodeType": "VariableDeclaration", "scope": 13401, "src": "27440:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13383, "name": "string", "nodeType": "ElementaryTypeName", "src": "27440:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13386, "mutability": "mutable", "name": "p3", "nameLocation": "27463:2:49", "nodeType": "VariableDeclaration", "scope": 13401, "src": "27458:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13385, "name": "bool", "nodeType": "ElementaryTypeName", "src": "27458:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "27415:51:49"}, "returnParameters": {"id": 13388, "nodeType": "ParameterList", "parameters": [], "src": "27481:0:49"}, "scope": 18025, "src": "27403:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13423, "nodeType": "Block", "src": "27665:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c737472696e672c6164647265737329", "id": 13415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27709:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9", "typeString": "literal_string \"log(uint256,address,string,address)\""}, "value": "log(uint256,address,string,address)"}, {"id": 13416, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13403, "src": "27748:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13417, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13405, "src": "27752:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13418, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13407, "src": "27756:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13419, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13409, "src": "27760:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9", "typeString": "literal_string \"log(uint256,address,string,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13413, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "27685:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13414, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "27689:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "27685:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13420, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27685:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13412, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "27669:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13421, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27669:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13422, "nodeType": "ExpressionStatement", "src": "27669:95:49"}]}, "id": 13424, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "27593:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13410, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13403, "mutability": "mutable", "name": "p0", "nameLocation": "27605:2:49", "nodeType": "VariableDeclaration", "scope": 13424, "src": "27597:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13402, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27597:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13405, "mutability": "mutable", "name": "p1", "nameLocation": "27617:2:49", "nodeType": "VariableDeclaration", "scope": 13424, "src": "27609:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13404, "name": "address", "nodeType": "ElementaryTypeName", "src": "27609:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13407, "mutability": "mutable", "name": "p2", "nameLocation": "27635:2:49", "nodeType": "VariableDeclaration", "scope": 13424, "src": "27621:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13406, "name": "string", "nodeType": "ElementaryTypeName", "src": "27621:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13409, "mutability": "mutable", "name": "p3", "nameLocation": "27647:2:49", "nodeType": "VariableDeclaration", "scope": 13424, "src": "27639:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13408, "name": "address", "nodeType": "ElementaryTypeName", "src": "27639:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "27596:54:49"}, "returnParameters": {"id": 13411, "nodeType": "ParameterList", "parameters": [], "src": "27665:0:49"}, "scope": 18025, "src": "27584:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13446, "nodeType": "Block", "src": "27843:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c626f6f6c2c75696e7432353629", "id": 13438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27887:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1", "typeString": "literal_string \"log(uint256,address,bool,uint256)\""}, "value": "log(uint256,address,bool,uint256)"}, {"id": 13439, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13426, "src": "27924:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13440, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13428, "src": "27928:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13441, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13430, "src": "27932:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13442, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13432, "src": "27936:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1", "typeString": "literal_string \"log(uint256,address,bool,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13436, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "27863:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13437, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "27867:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "27863:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13443, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27863:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13435, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "27847:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13444, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "27847:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13445, "nodeType": "ExpressionStatement", "src": "27847:93:49"}]}, "id": 13447, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "27780:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13433, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13426, "mutability": "mutable", "name": "p0", "nameLocation": "27792:2:49", "nodeType": "VariableDeclaration", "scope": 13447, "src": "27784:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13425, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27784:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13428, "mutability": "mutable", "name": "p1", "nameLocation": "27804:2:49", "nodeType": "VariableDeclaration", "scope": 13447, "src": "27796:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13427, "name": "address", "nodeType": "ElementaryTypeName", "src": "27796:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13430, "mutability": "mutable", "name": "p2", "nameLocation": "27813:2:49", "nodeType": "VariableDeclaration", "scope": 13447, "src": "27808:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13429, "name": "bool", "nodeType": "ElementaryTypeName", "src": "27808:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13432, "mutability": "mutable", "name": "p3", "nameLocation": "27825:2:49", "nodeType": "VariableDeclaration", "scope": 13447, "src": "27817:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13431, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27817:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "27783:45:49"}, "returnParameters": {"id": 13434, "nodeType": "ParameterList", "parameters": [], "src": "27843:0:49"}, "scope": 18025, "src": "27771:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13469, "nodeType": "Block", "src": "28025:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c626f6f6c2c737472696e6729", "id": 13461, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28069:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d", "typeString": "literal_string \"log(uint256,address,bool,string)\""}, "value": "log(uint256,address,bool,string)"}, {"id": 13462, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13449, "src": "28105:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13463, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13451, "src": "28109:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13464, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13453, "src": "28113:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13465, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13455, "src": "28117:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d", "typeString": "literal_string \"log(uint256,address,bool,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13459, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "28045:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13460, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "28049:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "28045:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13466, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28045:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13458, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "28029:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13467, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28029:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13468, "nodeType": "ExpressionStatement", "src": "28029:92:49"}]}, "id": 13470, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "27956:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13456, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13449, "mutability": "mutable", "name": "p0", "nameLocation": "27968:2:49", "nodeType": "VariableDeclaration", "scope": 13470, "src": "27960:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13448, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27960:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13451, "mutability": "mutable", "name": "p1", "nameLocation": "27980:2:49", "nodeType": "VariableDeclaration", "scope": 13470, "src": "27972:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13450, "name": "address", "nodeType": "ElementaryTypeName", "src": "27972:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13453, "mutability": "mutable", "name": "p2", "nameLocation": "27989:2:49", "nodeType": "VariableDeclaration", "scope": 13470, "src": "27984:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13452, "name": "bool", "nodeType": "ElementaryTypeName", "src": "27984:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13455, "mutability": "mutable", "name": "p3", "nameLocation": "28007:2:49", "nodeType": "VariableDeclaration", "scope": 13470, "src": "27993:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13454, "name": "string", "nodeType": "ElementaryTypeName", "src": "27993:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "27959:51:49"}, "returnParameters": {"id": 13457, "nodeType": "ParameterList", "parameters": [], "src": "28025:0:49"}, "scope": 18025, "src": "27947:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13492, "nodeType": "Block", "src": "28197:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c626f6f6c2c626f6f6c29", "id": 13484, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28241:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1", "typeString": "literal_string \"log(uint256,address,bool,bool)\""}, "value": "log(uint256,address,bool,bool)"}, {"id": 13485, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13472, "src": "28275:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13486, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13474, "src": "28279:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13487, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13476, "src": "28283:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13488, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13478, "src": "28287:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1", "typeString": "literal_string \"log(uint256,address,bool,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13482, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "28217:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13483, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "28221:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "28217:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13489, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28217:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13481, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "28201:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13490, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28201:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13491, "nodeType": "ExpressionStatement", "src": "28201:90:49"}]}, "id": 13493, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "28137:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13479, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13472, "mutability": "mutable", "name": "p0", "nameLocation": "28149:2:49", "nodeType": "VariableDeclaration", "scope": 13493, "src": "28141:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13471, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28141:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13474, "mutability": "mutable", "name": "p1", "nameLocation": "28161:2:49", "nodeType": "VariableDeclaration", "scope": 13493, "src": "28153:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13473, "name": "address", "nodeType": "ElementaryTypeName", "src": "28153:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13476, "mutability": "mutable", "name": "p2", "nameLocation": "28170:2:49", "nodeType": "VariableDeclaration", "scope": 13493, "src": "28165:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13475, "name": "bool", "nodeType": "ElementaryTypeName", "src": "28165:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13478, "mutability": "mutable", "name": "p3", "nameLocation": "28179:2:49", "nodeType": "VariableDeclaration", "scope": 13493, "src": "28174:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13477, "name": "bool", "nodeType": "ElementaryTypeName", "src": "28174:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "28140:42:49"}, "returnParameters": {"id": 13480, "nodeType": "ParameterList", "parameters": [], "src": "28197:0:49"}, "scope": 18025, "src": "28128:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13515, "nodeType": "Block", "src": "28370:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c626f6f6c2c6164647265737329", "id": 13507, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28414:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05", "typeString": "literal_string \"log(uint256,address,bool,address)\""}, "value": "log(uint256,address,bool,address)"}, {"id": 13508, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13495, "src": "28451:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13509, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13497, "src": "28455:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13510, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13499, "src": "28459:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13511, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13501, "src": "28463:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05", "typeString": "literal_string \"log(uint256,address,bool,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13505, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "28390:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13506, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "28394:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "28390:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13512, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28390:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13504, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "28374:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13513, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28374:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13514, "nodeType": "ExpressionStatement", "src": "28374:93:49"}]}, "id": 13516, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "28307:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13502, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13495, "mutability": "mutable", "name": "p0", "nameLocation": "28319:2:49", "nodeType": "VariableDeclaration", "scope": 13516, "src": "28311:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13494, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28311:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13497, "mutability": "mutable", "name": "p1", "nameLocation": "28331:2:49", "nodeType": "VariableDeclaration", "scope": 13516, "src": "28323:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13496, "name": "address", "nodeType": "ElementaryTypeName", "src": "28323:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13499, "mutability": "mutable", "name": "p2", "nameLocation": "28340:2:49", "nodeType": "VariableDeclaration", "scope": 13516, "src": "28335:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13498, "name": "bool", "nodeType": "ElementaryTypeName", "src": "28335:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13501, "mutability": "mutable", "name": "p3", "nameLocation": "28352:2:49", "nodeType": "VariableDeclaration", "scope": 13516, "src": "28344:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13500, "name": "address", "nodeType": "ElementaryTypeName", "src": "28344:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "28310:45:49"}, "returnParameters": {"id": 13503, "nodeType": "ParameterList", "parameters": [], "src": "28370:0:49"}, "scope": 18025, "src": "28298:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13538, "nodeType": "Block", "src": "28549:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c616464726573732c75696e7432353629", "id": 13530, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28593:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a", "typeString": "literal_string \"log(uint256,address,address,uint256)\""}, "value": "log(uint256,address,address,uint256)"}, {"id": 13531, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13518, "src": "28633:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13532, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13520, "src": "28637:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13533, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13522, "src": "28641:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13534, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13524, "src": "28645:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a", "typeString": "literal_string \"log(uint256,address,address,uint256)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13528, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "28569:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13529, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "28573:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "28569:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13535, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28569:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13527, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "28553:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13536, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28553:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13537, "nodeType": "ExpressionStatement", "src": "28553:96:49"}]}, "id": 13539, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "28483:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13525, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13518, "mutability": "mutable", "name": "p0", "nameLocation": "28495:2:49", "nodeType": "VariableDeclaration", "scope": 13539, "src": "28487:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13517, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28487:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13520, "mutability": "mutable", "name": "p1", "nameLocation": "28507:2:49", "nodeType": "VariableDeclaration", "scope": 13539, "src": "28499:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13519, "name": "address", "nodeType": "ElementaryTypeName", "src": "28499:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13522, "mutability": "mutable", "name": "p2", "nameLocation": "28519:2:49", "nodeType": "VariableDeclaration", "scope": 13539, "src": "28511:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13521, "name": "address", "nodeType": "ElementaryTypeName", "src": "28511:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13524, "mutability": "mutable", "name": "p3", "nameLocation": "28531:2:49", "nodeType": "VariableDeclaration", "scope": 13539, "src": "28523:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13523, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28523:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "28486:48:49"}, "returnParameters": {"id": 13526, "nodeType": "ParameterList", "parameters": [], "src": "28549:0:49"}, "scope": 18025, "src": "28474:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13561, "nodeType": "Block", "src": "28737:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c616464726573732c737472696e6729", "id": 13553, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28781:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882", "typeString": "literal_string \"log(uint256,address,address,string)\""}, "value": "log(uint256,address,address,string)"}, {"id": 13554, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13541, "src": "28820:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13555, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13543, "src": "28824:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13556, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13545, "src": "28828:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13557, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13547, "src": "28832:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882", "typeString": "literal_string \"log(uint256,address,address,string)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13551, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "28757:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13552, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "28761:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "28757:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13558, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28757:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13550, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "28741:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13559, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28741:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13560, "nodeType": "ExpressionStatement", "src": "28741:95:49"}]}, "id": 13562, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "28665:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13548, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13541, "mutability": "mutable", "name": "p0", "nameLocation": "28677:2:49", "nodeType": "VariableDeclaration", "scope": 13562, "src": "28669:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13540, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28669:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13543, "mutability": "mutable", "name": "p1", "nameLocation": "28689:2:49", "nodeType": "VariableDeclaration", "scope": 13562, "src": "28681:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13542, "name": "address", "nodeType": "ElementaryTypeName", "src": "28681:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13545, "mutability": "mutable", "name": "p2", "nameLocation": "28701:2:49", "nodeType": "VariableDeclaration", "scope": 13562, "src": "28693:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13544, "name": "address", "nodeType": "ElementaryTypeName", "src": "28693:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13547, "mutability": "mutable", "name": "p3", "nameLocation": "28719:2:49", "nodeType": "VariableDeclaration", "scope": 13562, "src": "28705:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13546, "name": "string", "nodeType": "ElementaryTypeName", "src": "28705:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "28668:54:49"}, "returnParameters": {"id": 13549, "nodeType": "ParameterList", "parameters": [], "src": "28737:0:49"}, "scope": 18025, "src": "28656:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13584, "nodeType": "Block", "src": "28915:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c616464726573732c626f6f6c29", "id": 13576, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28959:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d", "typeString": "literal_string \"log(uint256,address,address,bool)\""}, "value": "log(uint256,address,address,bool)"}, {"id": 13577, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13564, "src": "28996:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13578, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13566, "src": "29000:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13579, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13568, "src": "29004:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13580, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13570, "src": "29008:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d", "typeString": "literal_string \"log(uint256,address,address,bool)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13574, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "28935:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13575, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "28939:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "28935:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13581, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28935:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13573, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "28919:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13582, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28919:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13583, "nodeType": "ExpressionStatement", "src": "28919:93:49"}]}, "id": 13585, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "28852:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13571, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13564, "mutability": "mutable", "name": "p0", "nameLocation": "28864:2:49", "nodeType": "VariableDeclaration", "scope": 13585, "src": "28856:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13563, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28856:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13566, "mutability": "mutable", "name": "p1", "nameLocation": "28876:2:49", "nodeType": "VariableDeclaration", "scope": 13585, "src": "28868:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13565, "name": "address", "nodeType": "ElementaryTypeName", "src": "28868:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13568, "mutability": "mutable", "name": "p2", "nameLocation": "28888:2:49", "nodeType": "VariableDeclaration", "scope": 13585, "src": "28880:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13567, "name": "address", "nodeType": "ElementaryTypeName", "src": "28880:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13570, "mutability": "mutable", "name": "p3", "nameLocation": "28897:2:49", "nodeType": "VariableDeclaration", "scope": 13585, "src": "28892:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13569, "name": "bool", "nodeType": "ElementaryTypeName", "src": "28892:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "28855:45:49"}, "returnParameters": {"id": 13572, "nodeType": "ParameterList", "parameters": [], "src": "28915:0:49"}, "scope": 18025, "src": "28843:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13607, "nodeType": "Block", "src": "29094:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f672875696e743235362c616464726573732c616464726573732c6164647265737329", "id": 13599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "29138:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553", "typeString": "literal_string \"log(uint256,address,address,address)\""}, "value": "log(uint256,address,address,address)"}, {"id": 13600, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13587, "src": "29178:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13601, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13589, "src": "29182:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13602, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13591, "src": "29186:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13603, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13593, "src": "29190:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553", "typeString": "literal_string \"log(uint256,address,address,address)\""}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13597, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "29114:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13598, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29118:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "29114:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13604, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29114:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13596, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "29098:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13605, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29098:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13606, "nodeType": "ExpressionStatement", "src": "29098:96:49"}]}, "id": 13608, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "29028:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13594, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13587, "mutability": "mutable", "name": "p0", "nameLocation": "29040:2:49", "nodeType": "VariableDeclaration", "scope": 13608, "src": "29032:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13586, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29032:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13589, "mutability": "mutable", "name": "p1", "nameLocation": "29052:2:49", "nodeType": "VariableDeclaration", "scope": 13608, "src": "29044:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13588, "name": "address", "nodeType": "ElementaryTypeName", "src": "29044:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13591, "mutability": "mutable", "name": "p2", "nameLocation": "29064:2:49", "nodeType": "VariableDeclaration", "scope": 13608, "src": "29056:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13590, "name": "address", "nodeType": "ElementaryTypeName", "src": "29056:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13593, "mutability": "mutable", "name": "p3", "nameLocation": "29076:2:49", "nodeType": "VariableDeclaration", "scope": 13608, "src": "29068:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13592, "name": "address", "nodeType": "ElementaryTypeName", "src": "29068:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "29031:48:49"}, "returnParameters": {"id": 13595, "nodeType": "ParameterList", "parameters": [], "src": "29094:0:49"}, "scope": 18025, "src": "29019:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13630, "nodeType": "Block", "src": "29282:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c75696e743235362c75696e7432353629", "id": 13622, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "29326:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5", "typeString": "literal_string \"log(string,uint256,uint256,uint256)\""}, "value": "log(string,uint256,uint256,uint256)"}, {"id": 13623, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13610, "src": "29365:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13624, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13612, "src": "29369:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13625, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13614, "src": "29373:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13626, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13616, "src": "29377:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5", "typeString": "literal_string \"log(string,uint256,uint256,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13620, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "29302:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13621, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29306:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "29302:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13627, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29302:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13619, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "29286:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13628, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29286:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13629, "nodeType": "ExpressionStatement", "src": "29286:95:49"}]}, "id": 13631, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "29210:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13617, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13610, "mutability": "mutable", "name": "p0", "nameLocation": "29228:2:49", "nodeType": "VariableDeclaration", "scope": 13631, "src": "29214:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13609, "name": "string", "nodeType": "ElementaryTypeName", "src": "29214:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13612, "mutability": "mutable", "name": "p1", "nameLocation": "29240:2:49", "nodeType": "VariableDeclaration", "scope": 13631, "src": "29232:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13611, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29232:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13614, "mutability": "mutable", "name": "p2", "nameLocation": "29252:2:49", "nodeType": "VariableDeclaration", "scope": 13631, "src": "29244:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13613, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29244:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13616, "mutability": "mutable", "name": "p3", "nameLocation": "29264:2:49", "nodeType": "VariableDeclaration", "scope": 13631, "src": "29256:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13615, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29256:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "29213:54:49"}, "returnParameters": {"id": 13618, "nodeType": "ParameterList", "parameters": [], "src": "29282:0:49"}, "scope": 18025, "src": "29201:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13653, "nodeType": "Block", "src": "29475:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c75696e743235362c737472696e6729", "id": 13645, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "29519:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f", "typeString": "literal_string \"log(string,uint256,uint256,string)\""}, "value": "log(string,uint256,uint256,string)"}, {"id": 13646, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13633, "src": "29557:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13647, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13635, "src": "29561:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13648, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13637, "src": "29565:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13649, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13639, "src": "29569:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f", "typeString": "literal_string \"log(string,uint256,uint256,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13643, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "29495:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13644, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29499:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "29495:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13650, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29495:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13642, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "29479:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13651, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29479:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13652, "nodeType": "ExpressionStatement", "src": "29479:94:49"}]}, "id": 13654, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "29397:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13640, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13633, "mutability": "mutable", "name": "p0", "nameLocation": "29415:2:49", "nodeType": "VariableDeclaration", "scope": 13654, "src": "29401:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13632, "name": "string", "nodeType": "ElementaryTypeName", "src": "29401:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13635, "mutability": "mutable", "name": "p1", "nameLocation": "29427:2:49", "nodeType": "VariableDeclaration", "scope": 13654, "src": "29419:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13634, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29419:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13637, "mutability": "mutable", "name": "p2", "nameLocation": "29439:2:49", "nodeType": "VariableDeclaration", "scope": 13654, "src": "29431:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13636, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29431:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13639, "mutability": "mutable", "name": "p3", "nameLocation": "29457:2:49", "nodeType": "VariableDeclaration", "scope": 13654, "src": "29443:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13638, "name": "string", "nodeType": "ElementaryTypeName", "src": "29443:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "29400:60:49"}, "returnParameters": {"id": 13641, "nodeType": "ParameterList", "parameters": [], "src": "29475:0:49"}, "scope": 18025, "src": "29388:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13676, "nodeType": "Block", "src": "29658:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c75696e743235362c626f6f6c29", "id": 13668, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "29702:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f", "typeString": "literal_string \"log(string,uint256,uint256,bool)\""}, "value": "log(string,uint256,uint256,bool)"}, {"id": 13669, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13656, "src": "29738:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13670, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13658, "src": "29742:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13671, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13660, "src": "29746:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13672, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13662, "src": "29750:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f", "typeString": "literal_string \"log(string,uint256,uint256,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13666, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "29678:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13667, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29682:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "29678:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13673, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29678:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13665, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "29662:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13674, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29662:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13675, "nodeType": "ExpressionStatement", "src": "29662:92:49"}]}, "id": 13677, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "29589:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13663, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13656, "mutability": "mutable", "name": "p0", "nameLocation": "29607:2:49", "nodeType": "VariableDeclaration", "scope": 13677, "src": "29593:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13655, "name": "string", "nodeType": "ElementaryTypeName", "src": "29593:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13658, "mutability": "mutable", "name": "p1", "nameLocation": "29619:2:49", "nodeType": "VariableDeclaration", "scope": 13677, "src": "29611:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13657, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29611:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13660, "mutability": "mutable", "name": "p2", "nameLocation": "29631:2:49", "nodeType": "VariableDeclaration", "scope": 13677, "src": "29623:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13659, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29623:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13662, "mutability": "mutable", "name": "p3", "nameLocation": "29640:2:49", "nodeType": "VariableDeclaration", "scope": 13677, "src": "29635:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13661, "name": "bool", "nodeType": "ElementaryTypeName", "src": "29635:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "29592:51:49"}, "returnParameters": {"id": 13664, "nodeType": "ParameterList", "parameters": [], "src": "29658:0:49"}, "scope": 18025, "src": "29580:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13699, "nodeType": "Block", "src": "29842:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c75696e743235362c6164647265737329", "id": 13691, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "29886:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118", "typeString": "literal_string \"log(string,uint256,uint256,address)\""}, "value": "log(string,uint256,uint256,address)"}, {"id": 13692, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13679, "src": "29925:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13693, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13681, "src": "29929:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13694, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13683, "src": "29933:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13695, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13685, "src": "29937:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118", "typeString": "literal_string \"log(string,uint256,uint256,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13689, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "29862:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13690, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29866:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "29862:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13696, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29862:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13688, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "29846:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13697, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29846:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13698, "nodeType": "ExpressionStatement", "src": "29846:95:49"}]}, "id": 13700, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "29770:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13686, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13679, "mutability": "mutable", "name": "p0", "nameLocation": "29788:2:49", "nodeType": "VariableDeclaration", "scope": 13700, "src": "29774:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13678, "name": "string", "nodeType": "ElementaryTypeName", "src": "29774:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13681, "mutability": "mutable", "name": "p1", "nameLocation": "29800:2:49", "nodeType": "VariableDeclaration", "scope": 13700, "src": "29792:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13680, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29792:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13683, "mutability": "mutable", "name": "p2", "nameLocation": "29812:2:49", "nodeType": "VariableDeclaration", "scope": 13700, "src": "29804:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13682, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29804:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13685, "mutability": "mutable", "name": "p3", "nameLocation": "29824:2:49", "nodeType": "VariableDeclaration", "scope": 13700, "src": "29816:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13684, "name": "address", "nodeType": "ElementaryTypeName", "src": "29816:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "29773:54:49"}, "returnParameters": {"id": 13687, "nodeType": "ParameterList", "parameters": [], "src": "29842:0:49"}, "scope": 18025, "src": "29761:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13722, "nodeType": "Block", "src": "30035:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c737472696e672c75696e7432353629", "id": 13714, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "30079:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9", "typeString": "literal_string \"log(string,uint256,string,uint256)\""}, "value": "log(string,uint256,string,uint256)"}, {"id": 13715, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13702, "src": "30117:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13716, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13704, "src": "30121:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13717, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13706, "src": "30125:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13718, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13708, "src": "30129:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9", "typeString": "literal_string \"log(string,uint256,string,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13712, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "30055:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13713, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30059:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "30055:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13719, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30055:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13711, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "30039:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13720, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30039:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13721, "nodeType": "ExpressionStatement", "src": "30039:94:49"}]}, "id": 13723, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "29957:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13709, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13702, "mutability": "mutable", "name": "p0", "nameLocation": "29975:2:49", "nodeType": "VariableDeclaration", "scope": 13723, "src": "29961:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13701, "name": "string", "nodeType": "ElementaryTypeName", "src": "29961:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13704, "mutability": "mutable", "name": "p1", "nameLocation": "29987:2:49", "nodeType": "VariableDeclaration", "scope": 13723, "src": "29979:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13703, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29979:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13706, "mutability": "mutable", "name": "p2", "nameLocation": "30005:2:49", "nodeType": "VariableDeclaration", "scope": 13723, "src": "29991:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13705, "name": "string", "nodeType": "ElementaryTypeName", "src": "29991:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13708, "mutability": "mutable", "name": "p3", "nameLocation": "30017:2:49", "nodeType": "VariableDeclaration", "scope": 13723, "src": "30009:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13707, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30009:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "29960:60:49"}, "returnParameters": {"id": 13710, "nodeType": "ParameterList", "parameters": [], "src": "30035:0:49"}, "scope": 18025, "src": "29948:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13745, "nodeType": "Block", "src": "30233:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c737472696e672c737472696e6729", "id": 13737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "30277:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089", "typeString": "literal_string \"log(string,uint256,string,string)\""}, "value": "log(string,uint256,string,string)"}, {"id": 13738, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13725, "src": "30314:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13739, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13727, "src": "30318:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13740, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13729, "src": "30322:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13741, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13731, "src": "30326:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089", "typeString": "literal_string \"log(string,uint256,string,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13735, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "30253:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13736, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30257:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "30253:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13742, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30253:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13734, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "30237:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13743, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30237:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13744, "nodeType": "ExpressionStatement", "src": "30237:93:49"}]}, "id": 13746, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "30149:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13732, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13725, "mutability": "mutable", "name": "p0", "nameLocation": "30167:2:49", "nodeType": "VariableDeclaration", "scope": 13746, "src": "30153:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13724, "name": "string", "nodeType": "ElementaryTypeName", "src": "30153:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13727, "mutability": "mutable", "name": "p1", "nameLocation": "30179:2:49", "nodeType": "VariableDeclaration", "scope": 13746, "src": "30171:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13726, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30171:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13729, "mutability": "mutable", "name": "p2", "nameLocation": "30197:2:49", "nodeType": "VariableDeclaration", "scope": 13746, "src": "30183:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13728, "name": "string", "nodeType": "ElementaryTypeName", "src": "30183:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13731, "mutability": "mutable", "name": "p3", "nameLocation": "30215:2:49", "nodeType": "VariableDeclaration", "scope": 13746, "src": "30201:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13730, "name": "string", "nodeType": "ElementaryTypeName", "src": "30201:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "30152:66:49"}, "returnParameters": {"id": 13733, "nodeType": "ParameterList", "parameters": [], "src": "30233:0:49"}, "scope": 18025, "src": "30140:194:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13768, "nodeType": "Block", "src": "30421:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c737472696e672c626f6f6c29", "id": 13760, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "30465:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f", "typeString": "literal_string \"log(string,uint256,string,bool)\""}, "value": "log(string,uint256,string,bool)"}, {"id": 13761, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13748, "src": "30500:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13762, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13750, "src": "30504:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13763, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13752, "src": "30508:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13764, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13754, "src": "30512:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f", "typeString": "literal_string \"log(string,uint256,string,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13758, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "30441:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13759, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30445:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "30441:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13765, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30441:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13757, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "30425:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13766, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30425:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13767, "nodeType": "ExpressionStatement", "src": "30425:91:49"}]}, "id": 13769, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "30346:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13755, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13748, "mutability": "mutable", "name": "p0", "nameLocation": "30364:2:49", "nodeType": "VariableDeclaration", "scope": 13769, "src": "30350:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13747, "name": "string", "nodeType": "ElementaryTypeName", "src": "30350:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13750, "mutability": "mutable", "name": "p1", "nameLocation": "30376:2:49", "nodeType": "VariableDeclaration", "scope": 13769, "src": "30368:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13749, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30368:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13752, "mutability": "mutable", "name": "p2", "nameLocation": "30394:2:49", "nodeType": "VariableDeclaration", "scope": 13769, "src": "30380:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13751, "name": "string", "nodeType": "ElementaryTypeName", "src": "30380:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13754, "mutability": "mutable", "name": "p3", "nameLocation": "30403:2:49", "nodeType": "VariableDeclaration", "scope": 13769, "src": "30398:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13753, "name": "bool", "nodeType": "ElementaryTypeName", "src": "30398:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "30349:57:49"}, "returnParameters": {"id": 13756, "nodeType": "ParameterList", "parameters": [], "src": "30421:0:49"}, "scope": 18025, "src": "30337:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13791, "nodeType": "Block", "src": "30610:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c737472696e672c6164647265737329", "id": 13783, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "30654:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb", "typeString": "literal_string \"log(string,uint256,string,address)\""}, "value": "log(string,uint256,string,address)"}, {"id": 13784, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13771, "src": "30692:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13785, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13773, "src": "30696:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13786, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13775, "src": "30700:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13787, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13777, "src": "30704:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb", "typeString": "literal_string \"log(string,uint256,string,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13781, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "30630:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13782, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30634:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "30630:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13788, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30630:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13780, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "30614:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13789, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30614:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13790, "nodeType": "ExpressionStatement", "src": "30614:94:49"}]}, "id": 13792, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "30532:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13778, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13771, "mutability": "mutable", "name": "p0", "nameLocation": "30550:2:49", "nodeType": "VariableDeclaration", "scope": 13792, "src": "30536:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13770, "name": "string", "nodeType": "ElementaryTypeName", "src": "30536:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13773, "mutability": "mutable", "name": "p1", "nameLocation": "30562:2:49", "nodeType": "VariableDeclaration", "scope": 13792, "src": "30554:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13772, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30554:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13775, "mutability": "mutable", "name": "p2", "nameLocation": "30580:2:49", "nodeType": "VariableDeclaration", "scope": 13792, "src": "30566:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13774, "name": "string", "nodeType": "ElementaryTypeName", "src": "30566:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13777, "mutability": "mutable", "name": "p3", "nameLocation": "30592:2:49", "nodeType": "VariableDeclaration", "scope": 13792, "src": "30584:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13776, "name": "address", "nodeType": "ElementaryTypeName", "src": "30584:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "30535:60:49"}, "returnParameters": {"id": 13779, "nodeType": "ParameterList", "parameters": [], "src": "30610:0:49"}, "scope": 18025, "src": "30523:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13814, "nodeType": "Block", "src": "30793:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c626f6f6c2c75696e7432353629", "id": 13806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "30837:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13", "typeString": "literal_string \"log(string,uint256,bool,uint256)\""}, "value": "log(string,uint256,bool,uint256)"}, {"id": 13807, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13794, "src": "30873:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13808, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13796, "src": "30877:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13809, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13798, "src": "30881:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13810, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13800, "src": "30885:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13", "typeString": "literal_string \"log(string,uint256,bool,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13804, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "30813:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13805, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30817:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "30813:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13811, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30813:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13803, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "30797:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13812, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30797:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13813, "nodeType": "ExpressionStatement", "src": "30797:92:49"}]}, "id": 13815, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "30724:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13801, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13794, "mutability": "mutable", "name": "p0", "nameLocation": "30742:2:49", "nodeType": "VariableDeclaration", "scope": 13815, "src": "30728:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13793, "name": "string", "nodeType": "ElementaryTypeName", "src": "30728:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13796, "mutability": "mutable", "name": "p1", "nameLocation": "30754:2:49", "nodeType": "VariableDeclaration", "scope": 13815, "src": "30746:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13795, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30746:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13798, "mutability": "mutable", "name": "p2", "nameLocation": "30763:2:49", "nodeType": "VariableDeclaration", "scope": 13815, "src": "30758:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13797, "name": "bool", "nodeType": "ElementaryTypeName", "src": "30758:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13800, "mutability": "mutable", "name": "p3", "nameLocation": "30775:2:49", "nodeType": "VariableDeclaration", "scope": 13815, "src": "30767:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13799, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30767:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "30727:51:49"}, "returnParameters": {"id": 13802, "nodeType": "ParameterList", "parameters": [], "src": "30793:0:49"}, "scope": 18025, "src": "30715:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13837, "nodeType": "Block", "src": "30980:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c626f6f6c2c737472696e6729", "id": 13829, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31024:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87", "typeString": "literal_string \"log(string,uint256,bool,string)\""}, "value": "log(string,uint256,bool,string)"}, {"id": 13830, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13817, "src": "31059:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13831, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13819, "src": "31063:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13832, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13821, "src": "31067:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13833, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13823, "src": "31071:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87", "typeString": "literal_string \"log(string,uint256,bool,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13827, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "31000:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13828, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "31004:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "31000:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13834, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31000:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13826, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "30984:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13835, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30984:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13836, "nodeType": "ExpressionStatement", "src": "30984:91:49"}]}, "id": 13838, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "30905:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13824, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13817, "mutability": "mutable", "name": "p0", "nameLocation": "30923:2:49", "nodeType": "VariableDeclaration", "scope": 13838, "src": "30909:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13816, "name": "string", "nodeType": "ElementaryTypeName", "src": "30909:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13819, "mutability": "mutable", "name": "p1", "nameLocation": "30935:2:49", "nodeType": "VariableDeclaration", "scope": 13838, "src": "30927:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13818, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30927:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13821, "mutability": "mutable", "name": "p2", "nameLocation": "30944:2:49", "nodeType": "VariableDeclaration", "scope": 13838, "src": "30939:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13820, "name": "bool", "nodeType": "ElementaryTypeName", "src": "30939:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13823, "mutability": "mutable", "name": "p3", "nameLocation": "30962:2:49", "nodeType": "VariableDeclaration", "scope": 13838, "src": "30948:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13822, "name": "string", "nodeType": "ElementaryTypeName", "src": "30948:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "30908:57:49"}, "returnParameters": {"id": 13825, "nodeType": "ParameterList", "parameters": [], "src": "30980:0:49"}, "scope": 18025, "src": "30896:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13860, "nodeType": "Block", "src": "31157:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c626f6f6c2c626f6f6c29", "id": 13852, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31201:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76", "typeString": "literal_string \"log(string,uint256,bool,bool)\""}, "value": "log(string,uint256,bool,bool)"}, {"id": 13853, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13840, "src": "31234:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13854, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13842, "src": "31238:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13855, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13844, "src": "31242:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13856, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13846, "src": "31246:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76", "typeString": "literal_string \"log(string,uint256,bool,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13850, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "31177:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13851, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "31181:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "31177:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13857, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31177:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13849, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "31161:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13858, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31161:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13859, "nodeType": "ExpressionStatement", "src": "31161:89:49"}]}, "id": 13861, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "31091:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13847, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13840, "mutability": "mutable", "name": "p0", "nameLocation": "31109:2:49", "nodeType": "VariableDeclaration", "scope": 13861, "src": "31095:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13839, "name": "string", "nodeType": "ElementaryTypeName", "src": "31095:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13842, "mutability": "mutable", "name": "p1", "nameLocation": "31121:2:49", "nodeType": "VariableDeclaration", "scope": 13861, "src": "31113:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13841, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31113:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13844, "mutability": "mutable", "name": "p2", "nameLocation": "31130:2:49", "nodeType": "VariableDeclaration", "scope": 13861, "src": "31125:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13843, "name": "bool", "nodeType": "ElementaryTypeName", "src": "31125:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13846, "mutability": "mutable", "name": "p3", "nameLocation": "31139:2:49", "nodeType": "VariableDeclaration", "scope": 13861, "src": "31134:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13845, "name": "bool", "nodeType": "ElementaryTypeName", "src": "31134:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "31094:48:49"}, "returnParameters": {"id": 13848, "nodeType": "ParameterList", "parameters": [], "src": "31157:0:49"}, "scope": 18025, "src": "31082:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13883, "nodeType": "Block", "src": "31335:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c626f6f6c2c6164647265737329", "id": 13875, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31379:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7", "typeString": "literal_string \"log(string,uint256,bool,address)\""}, "value": "log(string,uint256,bool,address)"}, {"id": 13876, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13863, "src": "31415:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13877, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13865, "src": "31419:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13878, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13867, "src": "31423:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 13879, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13869, "src": "31427:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7", "typeString": "literal_string \"log(string,uint256,bool,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13873, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "31355:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13874, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "31359:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "31355:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13880, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31355:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13872, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "31339:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13881, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31339:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13882, "nodeType": "ExpressionStatement", "src": "31339:92:49"}]}, "id": 13884, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "31266:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13870, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13863, "mutability": "mutable", "name": "p0", "nameLocation": "31284:2:49", "nodeType": "VariableDeclaration", "scope": 13884, "src": "31270:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13862, "name": "string", "nodeType": "ElementaryTypeName", "src": "31270:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13865, "mutability": "mutable", "name": "p1", "nameLocation": "31296:2:49", "nodeType": "VariableDeclaration", "scope": 13884, "src": "31288:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13864, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31288:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13867, "mutability": "mutable", "name": "p2", "nameLocation": "31305:2:49", "nodeType": "VariableDeclaration", "scope": 13884, "src": "31300:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13866, "name": "bool", "nodeType": "ElementaryTypeName", "src": "31300:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 13869, "mutability": "mutable", "name": "p3", "nameLocation": "31317:2:49", "nodeType": "VariableDeclaration", "scope": 13884, "src": "31309:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13868, "name": "address", "nodeType": "ElementaryTypeName", "src": "31309:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "31269:51:49"}, "returnParameters": {"id": 13871, "nodeType": "ParameterList", "parameters": [], "src": "31335:0:49"}, "scope": 18025, "src": "31257:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13906, "nodeType": "Block", "src": "31519:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c616464726573732c75696e7432353629", "id": 13898, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31563:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff", "typeString": "literal_string \"log(string,uint256,address,uint256)\""}, "value": "log(string,uint256,address,uint256)"}, {"id": 13899, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13886, "src": "31602:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13900, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13888, "src": "31606:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13901, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13890, "src": "31610:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13902, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13892, "src": "31614:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff", "typeString": "literal_string \"log(string,uint256,address,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13896, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "31539:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13897, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "31543:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "31539:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13903, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31539:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13895, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "31523:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13904, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31523:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13905, "nodeType": "ExpressionStatement", "src": "31523:95:49"}]}, "id": 13907, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "31447:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13893, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13886, "mutability": "mutable", "name": "p0", "nameLocation": "31465:2:49", "nodeType": "VariableDeclaration", "scope": 13907, "src": "31451:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13885, "name": "string", "nodeType": "ElementaryTypeName", "src": "31451:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13888, "mutability": "mutable", "name": "p1", "nameLocation": "31477:2:49", "nodeType": "VariableDeclaration", "scope": 13907, "src": "31469:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13887, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31469:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13890, "mutability": "mutable", "name": "p2", "nameLocation": "31489:2:49", "nodeType": "VariableDeclaration", "scope": 13907, "src": "31481:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13889, "name": "address", "nodeType": "ElementaryTypeName", "src": "31481:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13892, "mutability": "mutable", "name": "p3", "nameLocation": "31501:2:49", "nodeType": "VariableDeclaration", "scope": 13907, "src": "31493:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13891, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31493:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "31450:54:49"}, "returnParameters": {"id": 13894, "nodeType": "ParameterList", "parameters": [], "src": "31519:0:49"}, "scope": 18025, "src": "31438:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13929, "nodeType": "Block", "src": "31712:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c616464726573732c737472696e6729", "id": 13921, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31756:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b", "typeString": "literal_string \"log(string,uint256,address,string)\""}, "value": "log(string,uint256,address,string)"}, {"id": 13922, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13909, "src": "31794:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13923, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13911, "src": "31798:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13924, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13913, "src": "31802:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13925, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13915, "src": "31806:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b", "typeString": "literal_string \"log(string,uint256,address,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 13919, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "31732:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13920, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "31736:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "31732:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13926, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31732:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13918, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "31716:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13927, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31716:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13928, "nodeType": "ExpressionStatement", "src": "31716:94:49"}]}, "id": 13930, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "31634:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13916, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13909, "mutability": "mutable", "name": "p0", "nameLocation": "31652:2:49", "nodeType": "VariableDeclaration", "scope": 13930, "src": "31638:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13908, "name": "string", "nodeType": "ElementaryTypeName", "src": "31638:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13911, "mutability": "mutable", "name": "p1", "nameLocation": "31664:2:49", "nodeType": "VariableDeclaration", "scope": 13930, "src": "31656:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13910, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31656:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13913, "mutability": "mutable", "name": "p2", "nameLocation": "31676:2:49", "nodeType": "VariableDeclaration", "scope": 13930, "src": "31668:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13912, "name": "address", "nodeType": "ElementaryTypeName", "src": "31668:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13915, "mutability": "mutable", "name": "p3", "nameLocation": "31694:2:49", "nodeType": "VariableDeclaration", "scope": 13930, "src": "31680:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13914, "name": "string", "nodeType": "ElementaryTypeName", "src": "31680:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "31637:60:49"}, "returnParameters": {"id": 13917, "nodeType": "ParameterList", "parameters": [], "src": "31712:0:49"}, "scope": 18025, "src": "31625:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13952, "nodeType": "Block", "src": "31895:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c616464726573732c626f6f6c29", "id": 13944, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31939:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190", "typeString": "literal_string \"log(string,uint256,address,bool)\""}, "value": "log(string,uint256,address,bool)"}, {"id": 13945, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13932, "src": "31975:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13946, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13934, "src": "31979:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13947, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13936, "src": "31983:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13948, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13938, "src": "31987:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190", "typeString": "literal_string \"log(string,uint256,address,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 13942, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "31915:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13943, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "31919:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "31915:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13949, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31915:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13941, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "31899:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13950, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "31899:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13951, "nodeType": "ExpressionStatement", "src": "31899:92:49"}]}, "id": 13953, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "31826:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13939, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13932, "mutability": "mutable", "name": "p0", "nameLocation": "31844:2:49", "nodeType": "VariableDeclaration", "scope": 13953, "src": "31830:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13931, "name": "string", "nodeType": "ElementaryTypeName", "src": "31830:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13934, "mutability": "mutable", "name": "p1", "nameLocation": "31856:2:49", "nodeType": "VariableDeclaration", "scope": 13953, "src": "31848:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13933, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31848:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13936, "mutability": "mutable", "name": "p2", "nameLocation": "31868:2:49", "nodeType": "VariableDeclaration", "scope": 13953, "src": "31860:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13935, "name": "address", "nodeType": "ElementaryTypeName", "src": "31860:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13938, "mutability": "mutable", "name": "p3", "nameLocation": "31877:2:49", "nodeType": "VariableDeclaration", "scope": 13953, "src": "31872:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 13937, "name": "bool", "nodeType": "ElementaryTypeName", "src": "31872:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "31829:51:49"}, "returnParameters": {"id": 13940, "nodeType": "ParameterList", "parameters": [], "src": "31895:0:49"}, "scope": 18025, "src": "31817:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13975, "nodeType": "Block", "src": "32079:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c75696e743235362c616464726573732c6164647265737329", "id": 13967, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "32123:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d", "typeString": "literal_string \"log(string,uint256,address,address)\""}, "value": "log(string,uint256,address,address)"}, {"id": 13968, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13955, "src": "32162:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13969, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13957, "src": "32166:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13970, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13959, "src": "32170:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 13971, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13961, "src": "32174:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d", "typeString": "literal_string \"log(string,uint256,address,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 13965, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "32099:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13966, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "32103:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "32099:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13972, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32099:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13964, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "32083:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13973, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32083:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13974, "nodeType": "ExpressionStatement", "src": "32083:95:49"}]}, "id": 13976, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "32007:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13962, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13955, "mutability": "mutable", "name": "p0", "nameLocation": "32025:2:49", "nodeType": "VariableDeclaration", "scope": 13976, "src": "32011:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13954, "name": "string", "nodeType": "ElementaryTypeName", "src": "32011:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13957, "mutability": "mutable", "name": "p1", "nameLocation": "32037:2:49", "nodeType": "VariableDeclaration", "scope": 13976, "src": "32029:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13956, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32029:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13959, "mutability": "mutable", "name": "p2", "nameLocation": "32049:2:49", "nodeType": "VariableDeclaration", "scope": 13976, "src": "32041:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13958, "name": "address", "nodeType": "ElementaryTypeName", "src": "32041:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 13961, "mutability": "mutable", "name": "p3", "nameLocation": "32061:2:49", "nodeType": "VariableDeclaration", "scope": 13976, "src": "32053:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 13960, "name": "address", "nodeType": "ElementaryTypeName", "src": "32053:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "32010:54:49"}, "returnParameters": {"id": 13963, "nodeType": "ParameterList", "parameters": [], "src": "32079:0:49"}, "scope": 18025, "src": "31998:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 13998, "nodeType": "Block", "src": "32272:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c75696e743235362c75696e7432353629", "id": 13990, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "32316:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776", "typeString": "literal_string \"log(string,string,uint256,uint256)\""}, "value": "log(string,string,uint256,uint256)"}, {"id": 13991, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13978, "src": "32354:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13992, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13980, "src": "32358:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 13993, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13982, "src": "32362:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 13994, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13984, "src": "32366:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776", "typeString": "literal_string \"log(string,string,uint256,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 13988, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "32292:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 13989, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "32296:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "32292:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 13995, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32292:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 13987, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "32276:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 13996, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32276:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 13997, "nodeType": "ExpressionStatement", "src": "32276:94:49"}]}, "id": 13999, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "32194:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 13985, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 13978, "mutability": "mutable", "name": "p0", "nameLocation": "32212:2:49", "nodeType": "VariableDeclaration", "scope": 13999, "src": "32198:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13977, "name": "string", "nodeType": "ElementaryTypeName", "src": "32198:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13980, "mutability": "mutable", "name": "p1", "nameLocation": "32230:2:49", "nodeType": "VariableDeclaration", "scope": 13999, "src": "32216:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 13979, "name": "string", "nodeType": "ElementaryTypeName", "src": "32216:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 13982, "mutability": "mutable", "name": "p2", "nameLocation": "32242:2:49", "nodeType": "VariableDeclaration", "scope": 13999, "src": "32234:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13981, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32234:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 13984, "mutability": "mutable", "name": "p3", "nameLocation": "32254:2:49", "nodeType": "VariableDeclaration", "scope": 13999, "src": "32246:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 13983, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32246:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "32197:60:49"}, "returnParameters": {"id": 13986, "nodeType": "ParameterList", "parameters": [], "src": "32272:0:49"}, "scope": 18025, "src": "32185:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14021, "nodeType": "Block", "src": "32470:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c75696e743235362c737472696e6729", "id": 14013, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "32514:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909", "typeString": "literal_string \"log(string,string,uint256,string)\""}, "value": "log(string,string,uint256,string)"}, {"id": 14014, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14001, "src": "32551:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14015, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14003, "src": "32555:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14016, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14005, "src": "32559:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14017, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14007, "src": "32563:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909", "typeString": "literal_string \"log(string,string,uint256,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14011, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "32490:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14012, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "32494:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "32490:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14018, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32490:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14010, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "32474:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14019, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32474:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14020, "nodeType": "ExpressionStatement", "src": "32474:93:49"}]}, "id": 14022, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "32386:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14008, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14001, "mutability": "mutable", "name": "p0", "nameLocation": "32404:2:49", "nodeType": "VariableDeclaration", "scope": 14022, "src": "32390:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14000, "name": "string", "nodeType": "ElementaryTypeName", "src": "32390:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14003, "mutability": "mutable", "name": "p1", "nameLocation": "32422:2:49", "nodeType": "VariableDeclaration", "scope": 14022, "src": "32408:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14002, "name": "string", "nodeType": "ElementaryTypeName", "src": "32408:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14005, "mutability": "mutable", "name": "p2", "nameLocation": "32434:2:49", "nodeType": "VariableDeclaration", "scope": 14022, "src": "32426:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14004, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32426:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14007, "mutability": "mutable", "name": "p3", "nameLocation": "32452:2:49", "nodeType": "VariableDeclaration", "scope": 14022, "src": "32438:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14006, "name": "string", "nodeType": "ElementaryTypeName", "src": "32438:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "32389:66:49"}, "returnParameters": {"id": 14009, "nodeType": "ParameterList", "parameters": [], "src": "32470:0:49"}, "scope": 18025, "src": "32377:194:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14044, "nodeType": "Block", "src": "32658:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c75696e743235362c626f6f6c29", "id": 14036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "32702:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2", "typeString": "literal_string \"log(string,string,uint256,bool)\""}, "value": "log(string,string,uint256,bool)"}, {"id": 14037, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14024, "src": "32737:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14038, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14026, "src": "32741:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14039, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14028, "src": "32745:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14040, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14030, "src": "32749:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2", "typeString": "literal_string \"log(string,string,uint256,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14034, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "32678:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14035, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "32682:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "32678:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14041, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32678:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14033, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "32662:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32662:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14043, "nodeType": "ExpressionStatement", "src": "32662:91:49"}]}, "id": 14045, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "32583:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14031, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14024, "mutability": "mutable", "name": "p0", "nameLocation": "32601:2:49", "nodeType": "VariableDeclaration", "scope": 14045, "src": "32587:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14023, "name": "string", "nodeType": "ElementaryTypeName", "src": "32587:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14026, "mutability": "mutable", "name": "p1", "nameLocation": "32619:2:49", "nodeType": "VariableDeclaration", "scope": 14045, "src": "32605:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14025, "name": "string", "nodeType": "ElementaryTypeName", "src": "32605:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14028, "mutability": "mutable", "name": "p2", "nameLocation": "32631:2:49", "nodeType": "VariableDeclaration", "scope": 14045, "src": "32623:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14027, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32623:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14030, "mutability": "mutable", "name": "p3", "nameLocation": "32640:2:49", "nodeType": "VariableDeclaration", "scope": 14045, "src": "32635:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14029, "name": "bool", "nodeType": "ElementaryTypeName", "src": "32635:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "32586:57:49"}, "returnParameters": {"id": 14032, "nodeType": "ParameterList", "parameters": [], "src": "32658:0:49"}, "scope": 18025, "src": "32574:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14067, "nodeType": "Block", "src": "32847:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c75696e743235362c6164647265737329", "id": 14059, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "32891:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6", "typeString": "literal_string \"log(string,string,uint256,address)\""}, "value": "log(string,string,uint256,address)"}, {"id": 14060, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14047, "src": "32929:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14061, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14049, "src": "32933:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14062, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14051, "src": "32937:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14063, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14053, "src": "32941:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6", "typeString": "literal_string \"log(string,string,uint256,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14057, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "32867:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14058, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "32871:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "32867:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14064, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32867:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14056, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "32851:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14065, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32851:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14066, "nodeType": "ExpressionStatement", "src": "32851:94:49"}]}, "id": 14068, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "32769:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14054, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14047, "mutability": "mutable", "name": "p0", "nameLocation": "32787:2:49", "nodeType": "VariableDeclaration", "scope": 14068, "src": "32773:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14046, "name": "string", "nodeType": "ElementaryTypeName", "src": "32773:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14049, "mutability": "mutable", "name": "p1", "nameLocation": "32805:2:49", "nodeType": "VariableDeclaration", "scope": 14068, "src": "32791:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14048, "name": "string", "nodeType": "ElementaryTypeName", "src": "32791:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14051, "mutability": "mutable", "name": "p2", "nameLocation": "32817:2:49", "nodeType": "VariableDeclaration", "scope": 14068, "src": "32809:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14050, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32809:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14053, "mutability": "mutable", "name": "p3", "nameLocation": "32829:2:49", "nodeType": "VariableDeclaration", "scope": 14068, "src": "32821:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14052, "name": "address", "nodeType": "ElementaryTypeName", "src": "32821:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "32772:60:49"}, "returnParameters": {"id": 14055, "nodeType": "ParameterList", "parameters": [], "src": "32847:0:49"}, "scope": 18025, "src": "32760:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14090, "nodeType": "Block", "src": "33045:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c737472696e672c75696e7432353629", "id": 14082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "33089:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689", "typeString": "literal_string \"log(string,string,string,uint256)\""}, "value": "log(string,string,string,uint256)"}, {"id": 14083, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14070, "src": "33126:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14084, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14072, "src": "33130:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14085, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14074, "src": "33134:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14086, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14076, "src": "33138:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689", "typeString": "literal_string \"log(string,string,string,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14080, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "33065:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14081, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "33069:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "33065:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14087, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33065:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14079, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "33049:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14088, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33049:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14089, "nodeType": "ExpressionStatement", "src": "33049:93:49"}]}, "id": 14091, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "32961:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14077, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14070, "mutability": "mutable", "name": "p0", "nameLocation": "32979:2:49", "nodeType": "VariableDeclaration", "scope": 14091, "src": "32965:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14069, "name": "string", "nodeType": "ElementaryTypeName", "src": "32965:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14072, "mutability": "mutable", "name": "p1", "nameLocation": "32997:2:49", "nodeType": "VariableDeclaration", "scope": 14091, "src": "32983:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14071, "name": "string", "nodeType": "ElementaryTypeName", "src": "32983:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14074, "mutability": "mutable", "name": "p2", "nameLocation": "33015:2:49", "nodeType": "VariableDeclaration", "scope": 14091, "src": "33001:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14073, "name": "string", "nodeType": "ElementaryTypeName", "src": "33001:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14076, "mutability": "mutable", "name": "p3", "nameLocation": "33027:2:49", "nodeType": "VariableDeclaration", "scope": 14091, "src": "33019:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14075, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "33019:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "32964:66:49"}, "returnParameters": {"id": 14078, "nodeType": "ParameterList", "parameters": [], "src": "33045:0:49"}, "scope": 18025, "src": "32952:194:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14113, "nodeType": "Block", "src": "33248:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729", "id": 14105, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "33292:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe", "typeString": "literal_string \"log(string,string,string,string)\""}, "value": "log(string,string,string,string)"}, {"id": 14106, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14093, "src": "33328:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14107, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14095, "src": "33332:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14108, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14097, "src": "33336:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14109, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14099, "src": "33340:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe", "typeString": "literal_string \"log(string,string,string,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14103, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "33268:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14104, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "33272:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "33268:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14110, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33268:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14102, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "33252:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14111, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33252:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14112, "nodeType": "ExpressionStatement", "src": "33252:92:49"}]}, "id": 14114, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "33158:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14100, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14093, "mutability": "mutable", "name": "p0", "nameLocation": "33176:2:49", "nodeType": "VariableDeclaration", "scope": 14114, "src": "33162:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14092, "name": "string", "nodeType": "ElementaryTypeName", "src": "33162:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14095, "mutability": "mutable", "name": "p1", "nameLocation": "33194:2:49", "nodeType": "VariableDeclaration", "scope": 14114, "src": "33180:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14094, "name": "string", "nodeType": "ElementaryTypeName", "src": "33180:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14097, "mutability": "mutable", "name": "p2", "nameLocation": "33212:2:49", "nodeType": "VariableDeclaration", "scope": 14114, "src": "33198:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14096, "name": "string", "nodeType": "ElementaryTypeName", "src": "33198:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14099, "mutability": "mutable", "name": "p3", "nameLocation": "33230:2:49", "nodeType": "VariableDeclaration", "scope": 14114, "src": "33216:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14098, "name": "string", "nodeType": "ElementaryTypeName", "src": "33216:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "33161:72:49"}, "returnParameters": {"id": 14101, "nodeType": "ParameterList", "parameters": [], "src": "33248:0:49"}, "scope": 18025, "src": "33149:199:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14136, "nodeType": "Block", "src": "33441:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29", "id": 14128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "33485:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332", "typeString": "literal_string \"log(string,string,string,bool)\""}, "value": "log(string,string,string,bool)"}, {"id": 14129, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14116, "src": "33519:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14130, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14118, "src": "33523:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14131, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14120, "src": "33527:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14132, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14122, "src": "33531:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332", "typeString": "literal_string \"log(string,string,string,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14126, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "33461:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14127, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "33465:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "33461:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14133, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33461:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14125, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "33445:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14134, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33445:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14135, "nodeType": "ExpressionStatement", "src": "33445:90:49"}]}, "id": 14137, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "33360:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14123, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14116, "mutability": "mutable", "name": "p0", "nameLocation": "33378:2:49", "nodeType": "VariableDeclaration", "scope": 14137, "src": "33364:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14115, "name": "string", "nodeType": "ElementaryTypeName", "src": "33364:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14118, "mutability": "mutable", "name": "p1", "nameLocation": "33396:2:49", "nodeType": "VariableDeclaration", "scope": 14137, "src": "33382:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14117, "name": "string", "nodeType": "ElementaryTypeName", "src": "33382:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14120, "mutability": "mutable", "name": "p2", "nameLocation": "33414:2:49", "nodeType": "VariableDeclaration", "scope": 14137, "src": "33400:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14119, "name": "string", "nodeType": "ElementaryTypeName", "src": "33400:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14122, "mutability": "mutable", "name": "p3", "nameLocation": "33423:2:49", "nodeType": "VariableDeclaration", "scope": 14137, "src": "33418:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14121, "name": "bool", "nodeType": "ElementaryTypeName", "src": "33418:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "33363:63:49"}, "returnParameters": {"id": 14124, "nodeType": "ParameterList", "parameters": [], "src": "33441:0:49"}, "scope": 18025, "src": "33351:188:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14159, "nodeType": "Block", "src": "33635:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329", "id": 14151, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "33679:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16", "typeString": "literal_string \"log(string,string,string,address)\""}, "value": "log(string,string,string,address)"}, {"id": 14152, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14139, "src": "33716:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14153, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14141, "src": "33720:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14154, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14143, "src": "33724:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14155, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14145, "src": "33728:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16", "typeString": "literal_string \"log(string,string,string,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14149, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "33655:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14150, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "33659:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "33655:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14156, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33655:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14148, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "33639:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14157, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33639:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14158, "nodeType": "ExpressionStatement", "src": "33639:93:49"}]}, "id": 14160, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "33551:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14146, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14139, "mutability": "mutable", "name": "p0", "nameLocation": "33569:2:49", "nodeType": "VariableDeclaration", "scope": 14160, "src": "33555:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14138, "name": "string", "nodeType": "ElementaryTypeName", "src": "33555:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14141, "mutability": "mutable", "name": "p1", "nameLocation": "33587:2:49", "nodeType": "VariableDeclaration", "scope": 14160, "src": "33573:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14140, "name": "string", "nodeType": "ElementaryTypeName", "src": "33573:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14143, "mutability": "mutable", "name": "p2", "nameLocation": "33605:2:49", "nodeType": "VariableDeclaration", "scope": 14160, "src": "33591:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14142, "name": "string", "nodeType": "ElementaryTypeName", "src": "33591:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14145, "mutability": "mutable", "name": "p3", "nameLocation": "33617:2:49", "nodeType": "VariableDeclaration", "scope": 14160, "src": "33609:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14144, "name": "address", "nodeType": "ElementaryTypeName", "src": "33609:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "33554:66:49"}, "returnParameters": {"id": 14147, "nodeType": "ParameterList", "parameters": [], "src": "33635:0:49"}, "scope": 18025, "src": "33542:194:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14182, "nodeType": "Block", "src": "33823:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7432353629", "id": 14174, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "33867:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729", "typeString": "literal_string \"log(string,string,bool,uint256)\""}, "value": "log(string,string,bool,uint256)"}, {"id": 14175, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14162, "src": "33902:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14176, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14164, "src": "33906:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14177, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14166, "src": "33910:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14178, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14168, "src": "33914:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729", "typeString": "literal_string \"log(string,string,bool,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14172, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "33843:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14173, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "33847:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "33843:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14179, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33843:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14171, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "33827:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14180, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "33827:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14181, "nodeType": "ExpressionStatement", "src": "33827:91:49"}]}, "id": 14183, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "33748:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14169, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14162, "mutability": "mutable", "name": "p0", "nameLocation": "33766:2:49", "nodeType": "VariableDeclaration", "scope": 14183, "src": "33752:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14161, "name": "string", "nodeType": "ElementaryTypeName", "src": "33752:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14164, "mutability": "mutable", "name": "p1", "nameLocation": "33784:2:49", "nodeType": "VariableDeclaration", "scope": 14183, "src": "33770:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14163, "name": "string", "nodeType": "ElementaryTypeName", "src": "33770:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14166, "mutability": "mutable", "name": "p2", "nameLocation": "33793:2:49", "nodeType": "VariableDeclaration", "scope": 14183, "src": "33788:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14165, "name": "bool", "nodeType": "ElementaryTypeName", "src": "33788:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14168, "mutability": "mutable", "name": "p3", "nameLocation": "33805:2:49", "nodeType": "VariableDeclaration", "scope": 14183, "src": "33797:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14167, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "33797:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "33751:57:49"}, "returnParameters": {"id": 14170, "nodeType": "ParameterList", "parameters": [], "src": "33823:0:49"}, "scope": 18025, "src": "33739:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14205, "nodeType": "Block", "src": "34015:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729", "id": 14197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "34059:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b", "typeString": "literal_string \"log(string,string,bool,string)\""}, "value": "log(string,string,bool,string)"}, {"id": 14198, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14185, "src": "34093:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14199, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14187, "src": "34097:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14200, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14189, "src": "34101:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14201, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14191, "src": "34105:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b", "typeString": "literal_string \"log(string,string,bool,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14195, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "34035:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14196, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "34039:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "34035:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14202, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34035:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14194, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "34019:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14203, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34019:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14204, "nodeType": "ExpressionStatement", "src": "34019:90:49"}]}, "id": 14206, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "33934:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14192, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14185, "mutability": "mutable", "name": "p0", "nameLocation": "33952:2:49", "nodeType": "VariableDeclaration", "scope": 14206, "src": "33938:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14184, "name": "string", "nodeType": "ElementaryTypeName", "src": "33938:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14187, "mutability": "mutable", "name": "p1", "nameLocation": "33970:2:49", "nodeType": "VariableDeclaration", "scope": 14206, "src": "33956:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14186, "name": "string", "nodeType": "ElementaryTypeName", "src": "33956:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14189, "mutability": "mutable", "name": "p2", "nameLocation": "33979:2:49", "nodeType": "VariableDeclaration", "scope": 14206, "src": "33974:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14188, "name": "bool", "nodeType": "ElementaryTypeName", "src": "33974:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14191, "mutability": "mutable", "name": "p3", "nameLocation": "33997:2:49", "nodeType": "VariableDeclaration", "scope": 14206, "src": "33983:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14190, "name": "string", "nodeType": "ElementaryTypeName", "src": "33983:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "33937:63:49"}, "returnParameters": {"id": 14193, "nodeType": "ParameterList", "parameters": [], "src": "34015:0:49"}, "scope": 18025, "src": "33925:188:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14228, "nodeType": "Block", "src": "34197:96:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29", "id": 14220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "34241:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10", "typeString": "literal_string \"log(string,string,bool,bool)\""}, "value": "log(string,string,bool,bool)"}, {"id": 14221, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14208, "src": "34273:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14222, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14210, "src": "34277:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14223, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14212, "src": "34281:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14224, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14214, "src": "34285:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10", "typeString": "literal_string \"log(string,string,bool,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14218, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "34217:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14219, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "34221:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "34217:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14225, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34217:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14217, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "34201:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14226, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34201:88:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14227, "nodeType": "ExpressionStatement", "src": "34201:88:49"}]}, "id": 14229, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "34125:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14215, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14208, "mutability": "mutable", "name": "p0", "nameLocation": "34143:2:49", "nodeType": "VariableDeclaration", "scope": 14229, "src": "34129:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14207, "name": "string", "nodeType": "ElementaryTypeName", "src": "34129:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14210, "mutability": "mutable", "name": "p1", "nameLocation": "34161:2:49", "nodeType": "VariableDeclaration", "scope": 14229, "src": "34147:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14209, "name": "string", "nodeType": "ElementaryTypeName", "src": "34147:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14212, "mutability": "mutable", "name": "p2", "nameLocation": "34170:2:49", "nodeType": "VariableDeclaration", "scope": 14229, "src": "34165:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14211, "name": "bool", "nodeType": "ElementaryTypeName", "src": "34165:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14214, "mutability": "mutable", "name": "p3", "nameLocation": "34179:2:49", "nodeType": "VariableDeclaration", "scope": 14229, "src": "34174:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14213, "name": "bool", "nodeType": "ElementaryTypeName", "src": "34174:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "34128:54:49"}, "returnParameters": {"id": 14216, "nodeType": "ParameterList", "parameters": [], "src": "34197:0:49"}, "scope": 18025, "src": "34116:177:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14251, "nodeType": "Block", "src": "34380:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329", "id": 14243, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "34424:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d", "typeString": "literal_string \"log(string,string,bool,address)\""}, "value": "log(string,string,bool,address)"}, {"id": 14244, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14231, "src": "34459:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14245, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14233, "src": "34463:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14246, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14235, "src": "34467:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14247, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14237, "src": "34471:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d", "typeString": "literal_string \"log(string,string,bool,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14241, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "34400:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14242, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "34404:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "34400:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14248, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34400:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14240, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "34384:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14249, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34384:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14250, "nodeType": "ExpressionStatement", "src": "34384:91:49"}]}, "id": 14252, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "34305:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14238, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14231, "mutability": "mutable", "name": "p0", "nameLocation": "34323:2:49", "nodeType": "VariableDeclaration", "scope": 14252, "src": "34309:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14230, "name": "string", "nodeType": "ElementaryTypeName", "src": "34309:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14233, "mutability": "mutable", "name": "p1", "nameLocation": "34341:2:49", "nodeType": "VariableDeclaration", "scope": 14252, "src": "34327:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14232, "name": "string", "nodeType": "ElementaryTypeName", "src": "34327:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14235, "mutability": "mutable", "name": "p2", "nameLocation": "34350:2:49", "nodeType": "VariableDeclaration", "scope": 14252, "src": "34345:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14234, "name": "bool", "nodeType": "ElementaryTypeName", "src": "34345:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14237, "mutability": "mutable", "name": "p3", "nameLocation": "34362:2:49", "nodeType": "VariableDeclaration", "scope": 14252, "src": "34354:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14236, "name": "address", "nodeType": "ElementaryTypeName", "src": "34354:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "34308:57:49"}, "returnParameters": {"id": 14239, "nodeType": "ParameterList", "parameters": [], "src": "34380:0:49"}, "scope": 18025, "src": "34296:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14274, "nodeType": "Block", "src": "34569:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c616464726573732c75696e7432353629", "id": 14266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "34613:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00", "typeString": "literal_string \"log(string,string,address,uint256)\""}, "value": "log(string,string,address,uint256)"}, {"id": 14267, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14254, "src": "34651:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14268, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14256, "src": "34655:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14269, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14258, "src": "34659:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14270, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14260, "src": "34663:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00", "typeString": "literal_string \"log(string,string,address,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14264, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "34589:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14265, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "34593:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "34589:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14271, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34589:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14263, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "34573:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14272, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34573:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14273, "nodeType": "ExpressionStatement", "src": "34573:94:49"}]}, "id": 14275, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "34491:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14261, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14254, "mutability": "mutable", "name": "p0", "nameLocation": "34509:2:49", "nodeType": "VariableDeclaration", "scope": 14275, "src": "34495:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14253, "name": "string", "nodeType": "ElementaryTypeName", "src": "34495:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14256, "mutability": "mutable", "name": "p1", "nameLocation": "34527:2:49", "nodeType": "VariableDeclaration", "scope": 14275, "src": "34513:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14255, "name": "string", "nodeType": "ElementaryTypeName", "src": "34513:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14258, "mutability": "mutable", "name": "p2", "nameLocation": "34539:2:49", "nodeType": "VariableDeclaration", "scope": 14275, "src": "34531:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14257, "name": "address", "nodeType": "ElementaryTypeName", "src": "34531:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14260, "mutability": "mutable", "name": "p3", "nameLocation": "34551:2:49", "nodeType": "VariableDeclaration", "scope": 14275, "src": "34543:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14259, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "34543:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "34494:60:49"}, "returnParameters": {"id": 14262, "nodeType": "ParameterList", "parameters": [], "src": "34569:0:49"}, "scope": 18025, "src": "34482:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14297, "nodeType": "Block", "src": "34767:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729", "id": 14289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "34811:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6", "typeString": "literal_string \"log(string,string,address,string)\""}, "value": "log(string,string,address,string)"}, {"id": 14290, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14277, "src": "34848:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14291, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14279, "src": "34852:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14292, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14281, "src": "34856:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14293, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14283, "src": "34860:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6", "typeString": "literal_string \"log(string,string,address,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14287, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "34787:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14288, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "34791:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "34787:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14294, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34787:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14286, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "34771:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14295, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34771:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14296, "nodeType": "ExpressionStatement", "src": "34771:93:49"}]}, "id": 14298, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "34683:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14284, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14277, "mutability": "mutable", "name": "p0", "nameLocation": "34701:2:49", "nodeType": "VariableDeclaration", "scope": 14298, "src": "34687:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14276, "name": "string", "nodeType": "ElementaryTypeName", "src": "34687:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14279, "mutability": "mutable", "name": "p1", "nameLocation": "34719:2:49", "nodeType": "VariableDeclaration", "scope": 14298, "src": "34705:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14278, "name": "string", "nodeType": "ElementaryTypeName", "src": "34705:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14281, "mutability": "mutable", "name": "p2", "nameLocation": "34731:2:49", "nodeType": "VariableDeclaration", "scope": 14298, "src": "34723:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14280, "name": "address", "nodeType": "ElementaryTypeName", "src": "34723:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14283, "mutability": "mutable", "name": "p3", "nameLocation": "34749:2:49", "nodeType": "VariableDeclaration", "scope": 14298, "src": "34735:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14282, "name": "string", "nodeType": "ElementaryTypeName", "src": "34735:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "34686:66:49"}, "returnParameters": {"id": 14285, "nodeType": "ParameterList", "parameters": [], "src": "34767:0:49"}, "scope": 18025, "src": "34674:194:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14320, "nodeType": "Block", "src": "34955:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29", "id": 14312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "34999:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63", "typeString": "literal_string \"log(string,string,address,bool)\""}, "value": "log(string,string,address,bool)"}, {"id": 14313, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14300, "src": "35034:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14314, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14302, "src": "35038:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14315, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14304, "src": "35042:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14316, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14306, "src": "35046:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63", "typeString": "literal_string \"log(string,string,address,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14310, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "34975:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14311, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "34979:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "34975:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14317, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34975:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14309, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "34959:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14318, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34959:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14319, "nodeType": "ExpressionStatement", "src": "34959:91:49"}]}, "id": 14321, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "34880:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14307, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14300, "mutability": "mutable", "name": "p0", "nameLocation": "34898:2:49", "nodeType": "VariableDeclaration", "scope": 14321, "src": "34884:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14299, "name": "string", "nodeType": "ElementaryTypeName", "src": "34884:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14302, "mutability": "mutable", "name": "p1", "nameLocation": "34916:2:49", "nodeType": "VariableDeclaration", "scope": 14321, "src": "34902:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14301, "name": "string", "nodeType": "ElementaryTypeName", "src": "34902:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14304, "mutability": "mutable", "name": "p2", "nameLocation": "34928:2:49", "nodeType": "VariableDeclaration", "scope": 14321, "src": "34920:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14303, "name": "address", "nodeType": "ElementaryTypeName", "src": "34920:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14306, "mutability": "mutable", "name": "p3", "nameLocation": "34937:2:49", "nodeType": "VariableDeclaration", "scope": 14321, "src": "34932:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14305, "name": "bool", "nodeType": "ElementaryTypeName", "src": "34932:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "34883:57:49"}, "returnParameters": {"id": 14308, "nodeType": "ParameterList", "parameters": [], "src": "34955:0:49"}, "scope": 18025, "src": "34871:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14343, "nodeType": "Block", "src": "35144:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329", "id": 14335, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "35188:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d", "typeString": "literal_string \"log(string,string,address,address)\""}, "value": "log(string,string,address,address)"}, {"id": 14336, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14323, "src": "35226:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14337, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14325, "src": "35230:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14338, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14327, "src": "35234:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14339, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14329, "src": "35238:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d", "typeString": "literal_string \"log(string,string,address,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14333, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "35164:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14334, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "35168:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "35164:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35164:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14332, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "35148:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14341, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35148:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14342, "nodeType": "ExpressionStatement", "src": "35148:94:49"}]}, "id": 14344, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "35066:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14330, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14323, "mutability": "mutable", "name": "p0", "nameLocation": "35084:2:49", "nodeType": "VariableDeclaration", "scope": 14344, "src": "35070:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14322, "name": "string", "nodeType": "ElementaryTypeName", "src": "35070:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14325, "mutability": "mutable", "name": "p1", "nameLocation": "35102:2:49", "nodeType": "VariableDeclaration", "scope": 14344, "src": "35088:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14324, "name": "string", "nodeType": "ElementaryTypeName", "src": "35088:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14327, "mutability": "mutable", "name": "p2", "nameLocation": "35114:2:49", "nodeType": "VariableDeclaration", "scope": 14344, "src": "35106:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14326, "name": "address", "nodeType": "ElementaryTypeName", "src": "35106:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14329, "mutability": "mutable", "name": "p3", "nameLocation": "35126:2:49", "nodeType": "VariableDeclaration", "scope": 14344, "src": "35118:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14328, "name": "address", "nodeType": "ElementaryTypeName", "src": "35118:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "35069:60:49"}, "returnParameters": {"id": 14331, "nodeType": "ParameterList", "parameters": [], "src": "35144:0:49"}, "scope": 18025, "src": "35057:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14366, "nodeType": "Block", "src": "35327:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e743235362c75696e7432353629", "id": 14358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "35371:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e", "typeString": "literal_string \"log(string,bool,uint256,uint256)\""}, "value": "log(string,bool,uint256,uint256)"}, {"id": 14359, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14346, "src": "35407:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14360, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14348, "src": "35411:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14361, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14350, "src": "35415:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14362, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14352, "src": "35419:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e", "typeString": "literal_string \"log(string,bool,uint256,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14356, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "35347:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14357, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "35351:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "35347:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14363, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35347:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14355, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "35331:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14364, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35331:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14365, "nodeType": "ExpressionStatement", "src": "35331:92:49"}]}, "id": 14367, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "35258:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14353, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14346, "mutability": "mutable", "name": "p0", "nameLocation": "35276:2:49", "nodeType": "VariableDeclaration", "scope": 14367, "src": "35262:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14345, "name": "string", "nodeType": "ElementaryTypeName", "src": "35262:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14348, "mutability": "mutable", "name": "p1", "nameLocation": "35285:2:49", "nodeType": "VariableDeclaration", "scope": 14367, "src": "35280:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14347, "name": "bool", "nodeType": "ElementaryTypeName", "src": "35280:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14350, "mutability": "mutable", "name": "p2", "nameLocation": "35297:2:49", "nodeType": "VariableDeclaration", "scope": 14367, "src": "35289:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14349, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35289:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14352, "mutability": "mutable", "name": "p3", "nameLocation": "35309:2:49", "nodeType": "VariableDeclaration", "scope": 14367, "src": "35301:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14351, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35301:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "35261:51:49"}, "returnParameters": {"id": 14354, "nodeType": "ParameterList", "parameters": [], "src": "35327:0:49"}, "scope": 18025, "src": "35249:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14389, "nodeType": "Block", "src": "35514:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e743235362c737472696e6729", "id": 14381, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "35558:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00", "typeString": "literal_string \"log(string,bool,uint256,string)\""}, "value": "log(string,bool,uint256,string)"}, {"id": 14382, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14369, "src": "35593:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14383, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14371, "src": "35597:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14384, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14373, "src": "35601:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14385, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14375, "src": "35605:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00", "typeString": "literal_string \"log(string,bool,uint256,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14379, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "35534:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14380, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "35538:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "35534:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14386, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35534:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14378, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "35518:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14387, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35518:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14388, "nodeType": "ExpressionStatement", "src": "35518:91:49"}]}, "id": 14390, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "35439:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14376, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14369, "mutability": "mutable", "name": "p0", "nameLocation": "35457:2:49", "nodeType": "VariableDeclaration", "scope": 14390, "src": "35443:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14368, "name": "string", "nodeType": "ElementaryTypeName", "src": "35443:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14371, "mutability": "mutable", "name": "p1", "nameLocation": "35466:2:49", "nodeType": "VariableDeclaration", "scope": 14390, "src": "35461:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14370, "name": "bool", "nodeType": "ElementaryTypeName", "src": "35461:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14373, "mutability": "mutable", "name": "p2", "nameLocation": "35478:2:49", "nodeType": "VariableDeclaration", "scope": 14390, "src": "35470:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14372, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35470:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14375, "mutability": "mutable", "name": "p3", "nameLocation": "35496:2:49", "nodeType": "VariableDeclaration", "scope": 14390, "src": "35482:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14374, "name": "string", "nodeType": "ElementaryTypeName", "src": "35482:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "35442:57:49"}, "returnParameters": {"id": 14377, "nodeType": "ParameterList", "parameters": [], "src": "35514:0:49"}, "scope": 18025, "src": "35430:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14412, "nodeType": "Block", "src": "35691:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e743235362c626f6f6c29", "id": 14404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "35735:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2", "typeString": "literal_string \"log(string,bool,uint256,bool)\""}, "value": "log(string,bool,uint256,bool)"}, {"id": 14405, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14392, "src": "35768:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14406, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14394, "src": "35772:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14407, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14396, "src": "35776:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14408, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14398, "src": "35780:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2", "typeString": "literal_string \"log(string,bool,uint256,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14402, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "35711:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14403, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "35715:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "35711:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14409, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35711:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14401, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "35695:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14410, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35695:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14411, "nodeType": "ExpressionStatement", "src": "35695:89:49"}]}, "id": 14413, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "35625:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14399, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14392, "mutability": "mutable", "name": "p0", "nameLocation": "35643:2:49", "nodeType": "VariableDeclaration", "scope": 14413, "src": "35629:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14391, "name": "string", "nodeType": "ElementaryTypeName", "src": "35629:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14394, "mutability": "mutable", "name": "p1", "nameLocation": "35652:2:49", "nodeType": "VariableDeclaration", "scope": 14413, "src": "35647:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14393, "name": "bool", "nodeType": "ElementaryTypeName", "src": "35647:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14396, "mutability": "mutable", "name": "p2", "nameLocation": "35664:2:49", "nodeType": "VariableDeclaration", "scope": 14413, "src": "35656:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14395, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35656:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14398, "mutability": "mutable", "name": "p3", "nameLocation": "35673:2:49", "nodeType": "VariableDeclaration", "scope": 14413, "src": "35668:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14397, "name": "bool", "nodeType": "ElementaryTypeName", "src": "35668:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "35628:48:49"}, "returnParameters": {"id": 14400, "nodeType": "ParameterList", "parameters": [], "src": "35691:0:49"}, "scope": 18025, "src": "35616:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14435, "nodeType": "Block", "src": "35869:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e743235362c6164647265737329", "id": 14427, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "35913:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e", "typeString": "literal_string \"log(string,bool,uint256,address)\""}, "value": "log(string,bool,uint256,address)"}, {"id": 14428, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14415, "src": "35949:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14429, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14417, "src": "35953:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14430, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14419, "src": "35957:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14431, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14421, "src": "35961:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e", "typeString": "literal_string \"log(string,bool,uint256,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14425, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "35889:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14426, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "35893:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "35889:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14432, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35889:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14424, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "35873:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14433, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35873:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14434, "nodeType": "ExpressionStatement", "src": "35873:92:49"}]}, "id": 14436, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "35800:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14422, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14415, "mutability": "mutable", "name": "p0", "nameLocation": "35818:2:49", "nodeType": "VariableDeclaration", "scope": 14436, "src": "35804:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14414, "name": "string", "nodeType": "ElementaryTypeName", "src": "35804:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14417, "mutability": "mutable", "name": "p1", "nameLocation": "35827:2:49", "nodeType": "VariableDeclaration", "scope": 14436, "src": "35822:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14416, "name": "bool", "nodeType": "ElementaryTypeName", "src": "35822:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14419, "mutability": "mutable", "name": "p2", "nameLocation": "35839:2:49", "nodeType": "VariableDeclaration", "scope": 14436, "src": "35831:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14418, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35831:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14421, "mutability": "mutable", "name": "p3", "nameLocation": "35851:2:49", "nodeType": "VariableDeclaration", "scope": 14436, "src": "35843:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14420, "name": "address", "nodeType": "ElementaryTypeName", "src": "35843:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "35803:51:49"}, "returnParameters": {"id": 14423, "nodeType": "ParameterList", "parameters": [], "src": "35869:0:49"}, "scope": 18025, "src": "35791:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14458, "nodeType": "Block", "src": "36056:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7432353629", "id": 14450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "36100:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a", "typeString": "literal_string \"log(string,bool,string,uint256)\""}, "value": "log(string,bool,string,uint256)"}, {"id": 14451, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14438, "src": "36135:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14452, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14440, "src": "36139:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14453, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14442, "src": "36143:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14454, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14444, "src": "36147:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a", "typeString": "literal_string \"log(string,bool,string,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14448, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "36076:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14449, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "36080:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "36076:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14455, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36076:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14447, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "36060:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14456, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36060:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14457, "nodeType": "ExpressionStatement", "src": "36060:91:49"}]}, "id": 14459, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "35981:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14445, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14438, "mutability": "mutable", "name": "p0", "nameLocation": "35999:2:49", "nodeType": "VariableDeclaration", "scope": 14459, "src": "35985:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14437, "name": "string", "nodeType": "ElementaryTypeName", "src": "35985:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14440, "mutability": "mutable", "name": "p1", "nameLocation": "36008:2:49", "nodeType": "VariableDeclaration", "scope": 14459, "src": "36003:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14439, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36003:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14442, "mutability": "mutable", "name": "p2", "nameLocation": "36026:2:49", "nodeType": "VariableDeclaration", "scope": 14459, "src": "36012:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14441, "name": "string", "nodeType": "ElementaryTypeName", "src": "36012:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14444, "mutability": "mutable", "name": "p3", "nameLocation": "36038:2:49", "nodeType": "VariableDeclaration", "scope": 14459, "src": "36030:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14443, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "36030:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "35984:57:49"}, "returnParameters": {"id": 14446, "nodeType": "ParameterList", "parameters": [], "src": "36056:0:49"}, "scope": 18025, "src": "35972:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14481, "nodeType": "Block", "src": "36248:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729", "id": 14473, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "36292:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d", "typeString": "literal_string \"log(string,bool,string,string)\""}, "value": "log(string,bool,string,string)"}, {"id": 14474, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14461, "src": "36326:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14475, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14463, "src": "36330:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14476, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14465, "src": "36334:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14477, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14467, "src": "36338:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d", "typeString": "literal_string \"log(string,bool,string,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14471, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "36268:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14472, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "36272:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "36268:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14478, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36268:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14470, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "36252:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14479, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36252:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14480, "nodeType": "ExpressionStatement", "src": "36252:90:49"}]}, "id": 14482, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "36167:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14468, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14461, "mutability": "mutable", "name": "p0", "nameLocation": "36185:2:49", "nodeType": "VariableDeclaration", "scope": 14482, "src": "36171:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14460, "name": "string", "nodeType": "ElementaryTypeName", "src": "36171:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14463, "mutability": "mutable", "name": "p1", "nameLocation": "36194:2:49", "nodeType": "VariableDeclaration", "scope": 14482, "src": "36189:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14462, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36189:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14465, "mutability": "mutable", "name": "p2", "nameLocation": "36212:2:49", "nodeType": "VariableDeclaration", "scope": 14482, "src": "36198:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14464, "name": "string", "nodeType": "ElementaryTypeName", "src": "36198:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14467, "mutability": "mutable", "name": "p3", "nameLocation": "36230:2:49", "nodeType": "VariableDeclaration", "scope": 14482, "src": "36216:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14466, "name": "string", "nodeType": "ElementaryTypeName", "src": "36216:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "36170:63:49"}, "returnParameters": {"id": 14469, "nodeType": "ParameterList", "parameters": [], "src": "36248:0:49"}, "scope": 18025, "src": "36158:188:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14504, "nodeType": "Block", "src": "36430:96:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29", "id": 14496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "36474:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b", "typeString": "literal_string \"log(string,bool,string,bool)\""}, "value": "log(string,bool,string,bool)"}, {"id": 14497, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14484, "src": "36506:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14498, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14486, "src": "36510:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14499, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14488, "src": "36514:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14500, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14490, "src": "36518:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b", "typeString": "literal_string \"log(string,bool,string,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14494, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "36450:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14495, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "36454:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "36450:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14501, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36450:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14493, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "36434:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14502, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36434:88:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14503, "nodeType": "ExpressionStatement", "src": "36434:88:49"}]}, "id": 14505, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "36358:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14491, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14484, "mutability": "mutable", "name": "p0", "nameLocation": "36376:2:49", "nodeType": "VariableDeclaration", "scope": 14505, "src": "36362:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14483, "name": "string", "nodeType": "ElementaryTypeName", "src": "36362:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14486, "mutability": "mutable", "name": "p1", "nameLocation": "36385:2:49", "nodeType": "VariableDeclaration", "scope": 14505, "src": "36380:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14485, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36380:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14488, "mutability": "mutable", "name": "p2", "nameLocation": "36403:2:49", "nodeType": "VariableDeclaration", "scope": 14505, "src": "36389:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14487, "name": "string", "nodeType": "ElementaryTypeName", "src": "36389:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14490, "mutability": "mutable", "name": "p3", "nameLocation": "36412:2:49", "nodeType": "VariableDeclaration", "scope": 14505, "src": "36407:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14489, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36407:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "36361:54:49"}, "returnParameters": {"id": 14492, "nodeType": "ParameterList", "parameters": [], "src": "36430:0:49"}, "scope": 18025, "src": "36349:177:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14527, "nodeType": "Block", "src": "36613:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329", "id": 14519, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "36657:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8", "typeString": "literal_string \"log(string,bool,string,address)\""}, "value": "log(string,bool,string,address)"}, {"id": 14520, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14507, "src": "36692:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14521, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14509, "src": "36696:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14522, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14511, "src": "36700:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14523, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14513, "src": "36704:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8", "typeString": "literal_string \"log(string,bool,string,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14517, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "36633:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14518, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "36637:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "36633:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14524, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36633:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14516, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "36617:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14525, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36617:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14526, "nodeType": "ExpressionStatement", "src": "36617:91:49"}]}, "id": 14528, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "36538:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14514, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14507, "mutability": "mutable", "name": "p0", "nameLocation": "36556:2:49", "nodeType": "VariableDeclaration", "scope": 14528, "src": "36542:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14506, "name": "string", "nodeType": "ElementaryTypeName", "src": "36542:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14509, "mutability": "mutable", "name": "p1", "nameLocation": "36565:2:49", "nodeType": "VariableDeclaration", "scope": 14528, "src": "36560:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14508, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36560:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14511, "mutability": "mutable", "name": "p2", "nameLocation": "36583:2:49", "nodeType": "VariableDeclaration", "scope": 14528, "src": "36569:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14510, "name": "string", "nodeType": "ElementaryTypeName", "src": "36569:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14513, "mutability": "mutable", "name": "p3", "nameLocation": "36595:2:49", "nodeType": "VariableDeclaration", "scope": 14528, "src": "36587:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14512, "name": "address", "nodeType": "ElementaryTypeName", "src": "36587:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "36541:57:49"}, "returnParameters": {"id": 14515, "nodeType": "ParameterList", "parameters": [], "src": "36613:0:49"}, "scope": 18025, "src": "36529:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14550, "nodeType": "Block", "src": "36790:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7432353629", "id": 14542, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "36834:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c", "typeString": "literal_string \"log(string,bool,bool,uint256)\""}, "value": "log(string,bool,bool,uint256)"}, {"id": 14543, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14530, "src": "36867:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14544, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14532, "src": "36871:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14545, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14534, "src": "36875:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14546, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14536, "src": "36879:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c", "typeString": "literal_string \"log(string,bool,bool,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14540, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "36810:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14541, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "36814:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "36810:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14547, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36810:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14539, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "36794:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14548, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36794:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14549, "nodeType": "ExpressionStatement", "src": "36794:89:49"}]}, "id": 14551, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "36724:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14537, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14530, "mutability": "mutable", "name": "p0", "nameLocation": "36742:2:49", "nodeType": "VariableDeclaration", "scope": 14551, "src": "36728:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14529, "name": "string", "nodeType": "ElementaryTypeName", "src": "36728:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14532, "mutability": "mutable", "name": "p1", "nameLocation": "36751:2:49", "nodeType": "VariableDeclaration", "scope": 14551, "src": "36746:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14531, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36746:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14534, "mutability": "mutable", "name": "p2", "nameLocation": "36760:2:49", "nodeType": "VariableDeclaration", "scope": 14551, "src": "36755:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14533, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36755:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14536, "mutability": "mutable", "name": "p3", "nameLocation": "36772:2:49", "nodeType": "VariableDeclaration", "scope": 14551, "src": "36764:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14535, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "36764:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "36727:48:49"}, "returnParameters": {"id": 14538, "nodeType": "ParameterList", "parameters": [], "src": "36790:0:49"}, "scope": 18025, "src": "36715:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14573, "nodeType": "Block", "src": "36971:96:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729", "id": 14565, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "37015:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058", "typeString": "literal_string \"log(string,bool,bool,string)\""}, "value": "log(string,bool,bool,string)"}, {"id": 14566, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14553, "src": "37047:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14567, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14555, "src": "37051:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14568, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14557, "src": "37055:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14569, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14559, "src": "37059:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058", "typeString": "literal_string \"log(string,bool,bool,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14563, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "36991:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14564, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "36995:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "36991:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14570, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36991:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14562, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "36975:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14571, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36975:88:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14572, "nodeType": "ExpressionStatement", "src": "36975:88:49"}]}, "id": 14574, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "36899:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14560, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14553, "mutability": "mutable", "name": "p0", "nameLocation": "36917:2:49", "nodeType": "VariableDeclaration", "scope": 14574, "src": "36903:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14552, "name": "string", "nodeType": "ElementaryTypeName", "src": "36903:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14555, "mutability": "mutable", "name": "p1", "nameLocation": "36926:2:49", "nodeType": "VariableDeclaration", "scope": 14574, "src": "36921:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14554, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36921:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14557, "mutability": "mutable", "name": "p2", "nameLocation": "36935:2:49", "nodeType": "VariableDeclaration", "scope": 14574, "src": "36930:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14556, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36930:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14559, "mutability": "mutable", "name": "p3", "nameLocation": "36953:2:49", "nodeType": "VariableDeclaration", "scope": 14574, "src": "36939:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14558, "name": "string", "nodeType": "ElementaryTypeName", "src": "36939:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "36902:54:49"}, "returnParameters": {"id": 14561, "nodeType": "ParameterList", "parameters": [], "src": "36971:0:49"}, "scope": 18025, "src": "36890:177:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14596, "nodeType": "Block", "src": "37142:94:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29", "id": 14588, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "37186:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2", "typeString": "literal_string \"log(string,bool,bool,bool)\""}, "value": "log(string,bool,bool,bool)"}, {"id": 14589, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14576, "src": "37216:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14590, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14578, "src": "37220:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14591, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14580, "src": "37224:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14592, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14582, "src": "37228:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2", "typeString": "literal_string \"log(string,bool,bool,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14586, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "37162:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14587, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "37166:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "37162:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14593, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37162:69:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14585, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "37146:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14594, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37146:86:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14595, "nodeType": "ExpressionStatement", "src": "37146:86:49"}]}, "id": 14597, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "37079:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14583, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14576, "mutability": "mutable", "name": "p0", "nameLocation": "37097:2:49", "nodeType": "VariableDeclaration", "scope": 14597, "src": "37083:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14575, "name": "string", "nodeType": "ElementaryTypeName", "src": "37083:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14578, "mutability": "mutable", "name": "p1", "nameLocation": "37106:2:49", "nodeType": "VariableDeclaration", "scope": 14597, "src": "37101:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14577, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37101:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14580, "mutability": "mutable", "name": "p2", "nameLocation": "37115:2:49", "nodeType": "VariableDeclaration", "scope": 14597, "src": "37110:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14579, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37110:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14582, "mutability": "mutable", "name": "p3", "nameLocation": "37124:2:49", "nodeType": "VariableDeclaration", "scope": 14597, "src": "37119:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14581, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37119:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "37082:45:49"}, "returnParameters": {"id": 14584, "nodeType": "ParameterList", "parameters": [], "src": "37142:0:49"}, "scope": 18025, "src": "37070:166:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14619, "nodeType": "Block", "src": "37314:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329", "id": 14611, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "37358:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d", "typeString": "literal_string \"log(string,bool,bool,address)\""}, "value": "log(string,bool,bool,address)"}, {"id": 14612, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14599, "src": "37391:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14613, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14601, "src": "37395:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14614, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14603, "src": "37399:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14615, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14605, "src": "37403:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d", "typeString": "literal_string \"log(string,bool,bool,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14609, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "37334:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14610, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "37338:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "37334:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14616, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37334:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14608, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "37318:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14617, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37318:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14618, "nodeType": "ExpressionStatement", "src": "37318:89:49"}]}, "id": 14620, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "37248:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14606, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14599, "mutability": "mutable", "name": "p0", "nameLocation": "37266:2:49", "nodeType": "VariableDeclaration", "scope": 14620, "src": "37252:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14598, "name": "string", "nodeType": "ElementaryTypeName", "src": "37252:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14601, "mutability": "mutable", "name": "p1", "nameLocation": "37275:2:49", "nodeType": "VariableDeclaration", "scope": 14620, "src": "37270:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14600, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37270:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14603, "mutability": "mutable", "name": "p2", "nameLocation": "37284:2:49", "nodeType": "VariableDeclaration", "scope": 14620, "src": "37279:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14602, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37279:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14605, "mutability": "mutable", "name": "p3", "nameLocation": "37296:2:49", "nodeType": "VariableDeclaration", "scope": 14620, "src": "37288:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14604, "name": "address", "nodeType": "ElementaryTypeName", "src": "37288:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "37251:48:49"}, "returnParameters": {"id": 14607, "nodeType": "ParameterList", "parameters": [], "src": "37314:0:49"}, "scope": 18025, "src": "37239:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14642, "nodeType": "Block", "src": "37492:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7432353629", "id": 14634, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "37536:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531", "typeString": "literal_string \"log(string,bool,address,uint256)\""}, "value": "log(string,bool,address,uint256)"}, {"id": 14635, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14622, "src": "37572:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14636, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14624, "src": "37576:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14637, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14626, "src": "37580:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14638, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14628, "src": "37584:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531", "typeString": "literal_string \"log(string,bool,address,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14632, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "37512:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14633, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "37516:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "37512:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14639, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37512:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14631, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "37496:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14640, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37496:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14641, "nodeType": "ExpressionStatement", "src": "37496:92:49"}]}, "id": 14643, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "37423:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14629, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14622, "mutability": "mutable", "name": "p0", "nameLocation": "37441:2:49", "nodeType": "VariableDeclaration", "scope": 14643, "src": "37427:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14621, "name": "string", "nodeType": "ElementaryTypeName", "src": "37427:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14624, "mutability": "mutable", "name": "p1", "nameLocation": "37450:2:49", "nodeType": "VariableDeclaration", "scope": 14643, "src": "37445:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14623, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37445:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14626, "mutability": "mutable", "name": "p2", "nameLocation": "37462:2:49", "nodeType": "VariableDeclaration", "scope": 14643, "src": "37454:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14625, "name": "address", "nodeType": "ElementaryTypeName", "src": "37454:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14628, "mutability": "mutable", "name": "p3", "nameLocation": "37474:2:49", "nodeType": "VariableDeclaration", "scope": 14643, "src": "37466:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14627, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "37466:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "37426:51:49"}, "returnParameters": {"id": 14630, "nodeType": "ParameterList", "parameters": [], "src": "37492:0:49"}, "scope": 18025, "src": "37414:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14665, "nodeType": "Block", "src": "37679:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729", "id": 14657, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "37723:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef", "typeString": "literal_string \"log(string,bool,address,string)\""}, "value": "log(string,bool,address,string)"}, {"id": 14658, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14645, "src": "37758:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14659, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14647, "src": "37762:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14660, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14649, "src": "37766:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14661, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14651, "src": "37770:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef", "typeString": "literal_string \"log(string,bool,address,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14655, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "37699:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14656, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "37703:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "37699:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14662, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37699:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14654, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "37683:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14663, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37683:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14664, "nodeType": "ExpressionStatement", "src": "37683:91:49"}]}, "id": 14666, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "37604:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14652, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14645, "mutability": "mutable", "name": "p0", "nameLocation": "37622:2:49", "nodeType": "VariableDeclaration", "scope": 14666, "src": "37608:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14644, "name": "string", "nodeType": "ElementaryTypeName", "src": "37608:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14647, "mutability": "mutable", "name": "p1", "nameLocation": "37631:2:49", "nodeType": "VariableDeclaration", "scope": 14666, "src": "37626:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14646, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37626:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14649, "mutability": "mutable", "name": "p2", "nameLocation": "37643:2:49", "nodeType": "VariableDeclaration", "scope": 14666, "src": "37635:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14648, "name": "address", "nodeType": "ElementaryTypeName", "src": "37635:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14651, "mutability": "mutable", "name": "p3", "nameLocation": "37661:2:49", "nodeType": "VariableDeclaration", "scope": 14666, "src": "37647:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14650, "name": "string", "nodeType": "ElementaryTypeName", "src": "37647:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "37607:57:49"}, "returnParameters": {"id": 14653, "nodeType": "ParameterList", "parameters": [], "src": "37679:0:49"}, "scope": 18025, "src": "37595:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14688, "nodeType": "Block", "src": "37856:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29", "id": 14680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "37900:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482", "typeString": "literal_string \"log(string,bool,address,bool)\""}, "value": "log(string,bool,address,bool)"}, {"id": 14681, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14668, "src": "37933:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14682, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14670, "src": "37937:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14683, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14672, "src": "37941:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14684, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14674, "src": "37945:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482", "typeString": "literal_string \"log(string,bool,address,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14678, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "37876:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14679, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "37880:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "37876:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14685, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37876:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14677, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "37860:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14686, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37860:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14687, "nodeType": "ExpressionStatement", "src": "37860:89:49"}]}, "id": 14689, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "37790:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14675, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14668, "mutability": "mutable", "name": "p0", "nameLocation": "37808:2:49", "nodeType": "VariableDeclaration", "scope": 14689, "src": "37794:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14667, "name": "string", "nodeType": "ElementaryTypeName", "src": "37794:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14670, "mutability": "mutable", "name": "p1", "nameLocation": "37817:2:49", "nodeType": "VariableDeclaration", "scope": 14689, "src": "37812:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14669, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37812:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14672, "mutability": "mutable", "name": "p2", "nameLocation": "37829:2:49", "nodeType": "VariableDeclaration", "scope": 14689, "src": "37821:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14671, "name": "address", "nodeType": "ElementaryTypeName", "src": "37821:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14674, "mutability": "mutable", "name": "p3", "nameLocation": "37838:2:49", "nodeType": "VariableDeclaration", "scope": 14689, "src": "37833:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14673, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37833:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "37793:48:49"}, "returnParameters": {"id": 14676, "nodeType": "ParameterList", "parameters": [], "src": "37856:0:49"}, "scope": 18025, "src": "37781:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14711, "nodeType": "Block", "src": "38034:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329", "id": 14703, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "38078:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d", "typeString": "literal_string \"log(string,bool,address,address)\""}, "value": "log(string,bool,address,address)"}, {"id": 14704, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14691, "src": "38114:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14705, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14693, "src": "38118:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14706, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14695, "src": "38122:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14707, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14697, "src": "38126:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d", "typeString": "literal_string \"log(string,bool,address,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14701, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "38054:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14702, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "38058:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "38054:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14708, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38054:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14700, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "38038:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14709, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38038:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14710, "nodeType": "ExpressionStatement", "src": "38038:92:49"}]}, "id": 14712, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "37965:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14698, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14691, "mutability": "mutable", "name": "p0", "nameLocation": "37983:2:49", "nodeType": "VariableDeclaration", "scope": 14712, "src": "37969:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14690, "name": "string", "nodeType": "ElementaryTypeName", "src": "37969:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14693, "mutability": "mutable", "name": "p1", "nameLocation": "37992:2:49", "nodeType": "VariableDeclaration", "scope": 14712, "src": "37987:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14692, "name": "bool", "nodeType": "ElementaryTypeName", "src": "37987:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14695, "mutability": "mutable", "name": "p2", "nameLocation": "38004:2:49", "nodeType": "VariableDeclaration", "scope": 14712, "src": "37996:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14694, "name": "address", "nodeType": "ElementaryTypeName", "src": "37996:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14697, "mutability": "mutable", "name": "p3", "nameLocation": "38016:2:49", "nodeType": "VariableDeclaration", "scope": 14712, "src": "38008:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14696, "name": "address", "nodeType": "ElementaryTypeName", "src": "38008:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "37968:51:49"}, "returnParameters": {"id": 14699, "nodeType": "ParameterList", "parameters": [], "src": "38034:0:49"}, "scope": 18025, "src": "37956:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14734, "nodeType": "Block", "src": "38218:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c75696e743235362c75696e7432353629", "id": 14726, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "38262:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9", "typeString": "literal_string \"log(string,address,uint256,uint256)\""}, "value": "log(string,address,uint256,uint256)"}, {"id": 14727, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14714, "src": "38301:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14728, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14716, "src": "38305:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14729, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14718, "src": "38309:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14730, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14720, "src": "38313:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9", "typeString": "literal_string \"log(string,address,uint256,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14724, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "38238:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14725, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "38242:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "38238:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14731, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38238:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14723, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "38222:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14732, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38222:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14733, "nodeType": "ExpressionStatement", "src": "38222:95:49"}]}, "id": 14735, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "38146:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14721, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14714, "mutability": "mutable", "name": "p0", "nameLocation": "38164:2:49", "nodeType": "VariableDeclaration", "scope": 14735, "src": "38150:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14713, "name": "string", "nodeType": "ElementaryTypeName", "src": "38150:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14716, "mutability": "mutable", "name": "p1", "nameLocation": "38176:2:49", "nodeType": "VariableDeclaration", "scope": 14735, "src": "38168:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14715, "name": "address", "nodeType": "ElementaryTypeName", "src": "38168:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14718, "mutability": "mutable", "name": "p2", "nameLocation": "38188:2:49", "nodeType": "VariableDeclaration", "scope": 14735, "src": "38180:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14717, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "38180:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14720, "mutability": "mutable", "name": "p3", "nameLocation": "38200:2:49", "nodeType": "VariableDeclaration", "scope": 14735, "src": "38192:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14719, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "38192:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "38149:54:49"}, "returnParameters": {"id": 14722, "nodeType": "ParameterList", "parameters": [], "src": "38218:0:49"}, "scope": 18025, "src": "38137:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14757, "nodeType": "Block", "src": "38411:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c75696e743235362c737472696e6729", "id": 14749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "38455:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c", "typeString": "literal_string \"log(string,address,uint256,string)\""}, "value": "log(string,address,uint256,string)"}, {"id": 14750, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14737, "src": "38493:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14751, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14739, "src": "38497:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14752, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14741, "src": "38501:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14753, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14743, "src": "38505:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c", "typeString": "literal_string \"log(string,address,uint256,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14747, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "38431:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14748, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "38435:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "38431:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14754, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38431:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14746, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "38415:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14755, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38415:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14756, "nodeType": "ExpressionStatement", "src": "38415:94:49"}]}, "id": 14758, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "38333:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14744, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14737, "mutability": "mutable", "name": "p0", "nameLocation": "38351:2:49", "nodeType": "VariableDeclaration", "scope": 14758, "src": "38337:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14736, "name": "string", "nodeType": "ElementaryTypeName", "src": "38337:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14739, "mutability": "mutable", "name": "p1", "nameLocation": "38363:2:49", "nodeType": "VariableDeclaration", "scope": 14758, "src": "38355:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14738, "name": "address", "nodeType": "ElementaryTypeName", "src": "38355:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14741, "mutability": "mutable", "name": "p2", "nameLocation": "38375:2:49", "nodeType": "VariableDeclaration", "scope": 14758, "src": "38367:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14740, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "38367:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14743, "mutability": "mutable", "name": "p3", "nameLocation": "38393:2:49", "nodeType": "VariableDeclaration", "scope": 14758, "src": "38379:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14742, "name": "string", "nodeType": "ElementaryTypeName", "src": "38379:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "38336:60:49"}, "returnParameters": {"id": 14745, "nodeType": "ParameterList", "parameters": [], "src": "38411:0:49"}, "scope": 18025, "src": "38324:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14780, "nodeType": "Block", "src": "38594:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c75696e743235362c626f6f6c29", "id": 14772, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "38638:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7", "typeString": "literal_string \"log(string,address,uint256,bool)\""}, "value": "log(string,address,uint256,bool)"}, {"id": 14773, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14760, "src": "38674:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14774, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14762, "src": "38678:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14775, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14764, "src": "38682:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14776, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14766, "src": "38686:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7", "typeString": "literal_string \"log(string,address,uint256,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14770, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "38614:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14771, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "38618:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "38614:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14777, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38614:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14769, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "38598:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14778, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38598:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14779, "nodeType": "ExpressionStatement", "src": "38598:92:49"}]}, "id": 14781, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "38525:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14767, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14760, "mutability": "mutable", "name": "p0", "nameLocation": "38543:2:49", "nodeType": "VariableDeclaration", "scope": 14781, "src": "38529:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14759, "name": "string", "nodeType": "ElementaryTypeName", "src": "38529:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14762, "mutability": "mutable", "name": "p1", "nameLocation": "38555:2:49", "nodeType": "VariableDeclaration", "scope": 14781, "src": "38547:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14761, "name": "address", "nodeType": "ElementaryTypeName", "src": "38547:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14764, "mutability": "mutable", "name": "p2", "nameLocation": "38567:2:49", "nodeType": "VariableDeclaration", "scope": 14781, "src": "38559:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14763, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "38559:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14766, "mutability": "mutable", "name": "p3", "nameLocation": "38576:2:49", "nodeType": "VariableDeclaration", "scope": 14781, "src": "38571:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14765, "name": "bool", "nodeType": "ElementaryTypeName", "src": "38571:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "38528:51:49"}, "returnParameters": {"id": 14768, "nodeType": "ParameterList", "parameters": [], "src": "38594:0:49"}, "scope": 18025, "src": "38516:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14803, "nodeType": "Block", "src": "38778:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c75696e743235362c6164647265737329", "id": 14795, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "38822:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a", "typeString": "literal_string \"log(string,address,uint256,address)\""}, "value": "log(string,address,uint256,address)"}, {"id": 14796, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14783, "src": "38861:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14797, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14785, "src": "38865:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14798, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14787, "src": "38869:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 14799, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14789, "src": "38873:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a", "typeString": "literal_string \"log(string,address,uint256,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14793, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "38798:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14794, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "38802:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "38798:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14800, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38798:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14792, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "38782:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14801, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38782:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14802, "nodeType": "ExpressionStatement", "src": "38782:95:49"}]}, "id": 14804, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "38706:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14790, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14783, "mutability": "mutable", "name": "p0", "nameLocation": "38724:2:49", "nodeType": "VariableDeclaration", "scope": 14804, "src": "38710:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14782, "name": "string", "nodeType": "ElementaryTypeName", "src": "38710:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14785, "mutability": "mutable", "name": "p1", "nameLocation": "38736:2:49", "nodeType": "VariableDeclaration", "scope": 14804, "src": "38728:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14784, "name": "address", "nodeType": "ElementaryTypeName", "src": "38728:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14787, "mutability": "mutable", "name": "p2", "nameLocation": "38748:2:49", "nodeType": "VariableDeclaration", "scope": 14804, "src": "38740:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14786, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "38740:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 14789, "mutability": "mutable", "name": "p3", "nameLocation": "38760:2:49", "nodeType": "VariableDeclaration", "scope": 14804, "src": "38752:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14788, "name": "address", "nodeType": "ElementaryTypeName", "src": "38752:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "38709:54:49"}, "returnParameters": {"id": 14791, "nodeType": "ParameterList", "parameters": [], "src": "38778:0:49"}, "scope": 18025, "src": "38697:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14826, "nodeType": "Block", "src": "38971:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c737472696e672c75696e7432353629", "id": 14818, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "39015:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd", "typeString": "literal_string \"log(string,address,string,uint256)\""}, "value": "log(string,address,string,uint256)"}, {"id": 14819, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14806, "src": "39053:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14820, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14808, "src": "39057:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14821, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14810, "src": "39061:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14822, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14812, "src": "39065:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd", "typeString": "literal_string \"log(string,address,string,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14816, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "38991:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14817, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "38995:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "38991:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14823, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38991:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14815, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "38975:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14824, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38975:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14825, "nodeType": "ExpressionStatement", "src": "38975:94:49"}]}, "id": 14827, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "38893:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14813, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14806, "mutability": "mutable", "name": "p0", "nameLocation": "38911:2:49", "nodeType": "VariableDeclaration", "scope": 14827, "src": "38897:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14805, "name": "string", "nodeType": "ElementaryTypeName", "src": "38897:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14808, "mutability": "mutable", "name": "p1", "nameLocation": "38923:2:49", "nodeType": "VariableDeclaration", "scope": 14827, "src": "38915:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14807, "name": "address", "nodeType": "ElementaryTypeName", "src": "38915:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14810, "mutability": "mutable", "name": "p2", "nameLocation": "38941:2:49", "nodeType": "VariableDeclaration", "scope": 14827, "src": "38927:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14809, "name": "string", "nodeType": "ElementaryTypeName", "src": "38927:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14812, "mutability": "mutable", "name": "p3", "nameLocation": "38953:2:49", "nodeType": "VariableDeclaration", "scope": 14827, "src": "38945:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14811, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "38945:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "38896:60:49"}, "returnParameters": {"id": 14814, "nodeType": "ParameterList", "parameters": [], "src": "38971:0:49"}, "scope": 18025, "src": "38884:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14849, "nodeType": "Block", "src": "39169:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729", "id": 14841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "39213:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797", "typeString": "literal_string \"log(string,address,string,string)\""}, "value": "log(string,address,string,string)"}, {"id": 14842, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14829, "src": "39250:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14843, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14831, "src": "39254:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14844, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14833, "src": "39258:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14845, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14835, "src": "39262:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797", "typeString": "literal_string \"log(string,address,string,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14839, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "39189:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14840, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "39193:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "39189:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14846, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39189:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14838, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "39173:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14847, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39173:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14848, "nodeType": "ExpressionStatement", "src": "39173:93:49"}]}, "id": 14850, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "39085:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14836, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14829, "mutability": "mutable", "name": "p0", "nameLocation": "39103:2:49", "nodeType": "VariableDeclaration", "scope": 14850, "src": "39089:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14828, "name": "string", "nodeType": "ElementaryTypeName", "src": "39089:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14831, "mutability": "mutable", "name": "p1", "nameLocation": "39115:2:49", "nodeType": "VariableDeclaration", "scope": 14850, "src": "39107:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14830, "name": "address", "nodeType": "ElementaryTypeName", "src": "39107:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14833, "mutability": "mutable", "name": "p2", "nameLocation": "39133:2:49", "nodeType": "VariableDeclaration", "scope": 14850, "src": "39119:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14832, "name": "string", "nodeType": "ElementaryTypeName", "src": "39119:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14835, "mutability": "mutable", "name": "p3", "nameLocation": "39151:2:49", "nodeType": "VariableDeclaration", "scope": 14850, "src": "39137:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14834, "name": "string", "nodeType": "ElementaryTypeName", "src": "39137:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "39088:66:49"}, "returnParameters": {"id": 14837, "nodeType": "ParameterList", "parameters": [], "src": "39169:0:49"}, "scope": 18025, "src": "39076:194:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14872, "nodeType": "Block", "src": "39357:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29", "id": 14864, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "39401:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154", "typeString": "literal_string \"log(string,address,string,bool)\""}, "value": "log(string,address,string,bool)"}, {"id": 14865, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14852, "src": "39436:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14866, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14854, "src": "39440:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14867, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14856, "src": "39444:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14868, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14858, "src": "39448:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154", "typeString": "literal_string \"log(string,address,string,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14862, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "39377:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14863, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "39381:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "39377:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14869, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39377:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14861, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "39361:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14870, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39361:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14871, "nodeType": "ExpressionStatement", "src": "39361:91:49"}]}, "id": 14873, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "39282:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14859, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14852, "mutability": "mutable", "name": "p0", "nameLocation": "39300:2:49", "nodeType": "VariableDeclaration", "scope": 14873, "src": "39286:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14851, "name": "string", "nodeType": "ElementaryTypeName", "src": "39286:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14854, "mutability": "mutable", "name": "p1", "nameLocation": "39312:2:49", "nodeType": "VariableDeclaration", "scope": 14873, "src": "39304:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14853, "name": "address", "nodeType": "ElementaryTypeName", "src": "39304:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14856, "mutability": "mutable", "name": "p2", "nameLocation": "39330:2:49", "nodeType": "VariableDeclaration", "scope": 14873, "src": "39316:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14855, "name": "string", "nodeType": "ElementaryTypeName", "src": "39316:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14858, "mutability": "mutable", "name": "p3", "nameLocation": "39339:2:49", "nodeType": "VariableDeclaration", "scope": 14873, "src": "39334:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14857, "name": "bool", "nodeType": "ElementaryTypeName", "src": "39334:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "39285:57:49"}, "returnParameters": {"id": 14860, "nodeType": "ParameterList", "parameters": [], "src": "39357:0:49"}, "scope": 18025, "src": "39273:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14895, "nodeType": "Block", "src": "39546:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329", "id": 14887, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "39590:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d", "typeString": "literal_string \"log(string,address,string,address)\""}, "value": "log(string,address,string,address)"}, {"id": 14888, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14875, "src": "39628:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14889, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14877, "src": "39632:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14890, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14879, "src": "39636:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14891, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14881, "src": "39640:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d", "typeString": "literal_string \"log(string,address,string,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14885, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "39566:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14886, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "39570:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "39566:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14892, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39566:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14884, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "39550:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14893, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39550:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14894, "nodeType": "ExpressionStatement", "src": "39550:94:49"}]}, "id": 14896, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "39468:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14882, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14875, "mutability": "mutable", "name": "p0", "nameLocation": "39486:2:49", "nodeType": "VariableDeclaration", "scope": 14896, "src": "39472:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14874, "name": "string", "nodeType": "ElementaryTypeName", "src": "39472:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14877, "mutability": "mutable", "name": "p1", "nameLocation": "39498:2:49", "nodeType": "VariableDeclaration", "scope": 14896, "src": "39490:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14876, "name": "address", "nodeType": "ElementaryTypeName", "src": "39490:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14879, "mutability": "mutable", "name": "p2", "nameLocation": "39516:2:49", "nodeType": "VariableDeclaration", "scope": 14896, "src": "39502:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14878, "name": "string", "nodeType": "ElementaryTypeName", "src": "39502:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14881, "mutability": "mutable", "name": "p3", "nameLocation": "39528:2:49", "nodeType": "VariableDeclaration", "scope": 14896, "src": "39520:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14880, "name": "address", "nodeType": "ElementaryTypeName", "src": "39520:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "39471:60:49"}, "returnParameters": {"id": 14883, "nodeType": "ParameterList", "parameters": [], "src": "39546:0:49"}, "scope": 18025, "src": "39459:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14918, "nodeType": "Block", "src": "39729:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7432353629", "id": 14910, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "39773:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5", "typeString": "literal_string \"log(string,address,bool,uint256)\""}, "value": "log(string,address,bool,uint256)"}, {"id": 14911, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14898, "src": "39809:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14912, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14900, "src": "39813:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14913, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14902, "src": "39817:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14914, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14904, "src": "39821:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5", "typeString": "literal_string \"log(string,address,bool,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 14908, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "39749:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14909, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "39753:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "39749:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14915, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39749:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14907, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "39733:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14916, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39733:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14917, "nodeType": "ExpressionStatement", "src": "39733:92:49"}]}, "id": 14919, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "39660:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14905, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14898, "mutability": "mutable", "name": "p0", "nameLocation": "39678:2:49", "nodeType": "VariableDeclaration", "scope": 14919, "src": "39664:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14897, "name": "string", "nodeType": "ElementaryTypeName", "src": "39664:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14900, "mutability": "mutable", "name": "p1", "nameLocation": "39690:2:49", "nodeType": "VariableDeclaration", "scope": 14919, "src": "39682:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14899, "name": "address", "nodeType": "ElementaryTypeName", "src": "39682:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14902, "mutability": "mutable", "name": "p2", "nameLocation": "39699:2:49", "nodeType": "VariableDeclaration", "scope": 14919, "src": "39694:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14901, "name": "bool", "nodeType": "ElementaryTypeName", "src": "39694:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14904, "mutability": "mutable", "name": "p3", "nameLocation": "39711:2:49", "nodeType": "VariableDeclaration", "scope": 14919, "src": "39703:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14903, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "39703:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "39663:51:49"}, "returnParameters": {"id": 14906, "nodeType": "ParameterList", "parameters": [], "src": "39729:0:49"}, "scope": 18025, "src": "39651:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14941, "nodeType": "Block", "src": "39916:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729", "id": 14933, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "39960:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb", "typeString": "literal_string \"log(string,address,bool,string)\""}, "value": "log(string,address,bool,string)"}, {"id": 14934, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14921, "src": "39995:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14935, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14923, "src": "39999:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14936, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14925, "src": "40003:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14937, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14927, "src": "40007:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb", "typeString": "literal_string \"log(string,address,bool,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 14931, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "39936:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14932, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "39940:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "39936:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14938, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39936:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14930, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "39920:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14939, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "39920:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14940, "nodeType": "ExpressionStatement", "src": "39920:91:49"}]}, "id": 14942, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "39841:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14928, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14921, "mutability": "mutable", "name": "p0", "nameLocation": "39859:2:49", "nodeType": "VariableDeclaration", "scope": 14942, "src": "39845:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14920, "name": "string", "nodeType": "ElementaryTypeName", "src": "39845:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14923, "mutability": "mutable", "name": "p1", "nameLocation": "39871:2:49", "nodeType": "VariableDeclaration", "scope": 14942, "src": "39863:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14922, "name": "address", "nodeType": "ElementaryTypeName", "src": "39863:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14925, "mutability": "mutable", "name": "p2", "nameLocation": "39880:2:49", "nodeType": "VariableDeclaration", "scope": 14942, "src": "39875:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14924, "name": "bool", "nodeType": "ElementaryTypeName", "src": "39875:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14927, "mutability": "mutable", "name": "p3", "nameLocation": "39898:2:49", "nodeType": "VariableDeclaration", "scope": 14942, "src": "39884:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14926, "name": "string", "nodeType": "ElementaryTypeName", "src": "39884:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "39844:57:49"}, "returnParameters": {"id": 14929, "nodeType": "ParameterList", "parameters": [], "src": "39916:0:49"}, "scope": 18025, "src": "39832:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14964, "nodeType": "Block", "src": "40093:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29", "id": 14956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "40137:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039", "typeString": "literal_string \"log(string,address,bool,bool)\""}, "value": "log(string,address,bool,bool)"}, {"id": 14957, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14944, "src": "40170:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14958, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14946, "src": "40174:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14959, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14948, "src": "40178:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14960, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14950, "src": "40182:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039", "typeString": "literal_string \"log(string,address,bool,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 14954, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "40113:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14955, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "40117:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "40113:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14961, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40113:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14953, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "40097:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14962, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40097:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14963, "nodeType": "ExpressionStatement", "src": "40097:89:49"}]}, "id": 14965, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "40027:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14951, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14944, "mutability": "mutable", "name": "p0", "nameLocation": "40045:2:49", "nodeType": "VariableDeclaration", "scope": 14965, "src": "40031:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14943, "name": "string", "nodeType": "ElementaryTypeName", "src": "40031:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14946, "mutability": "mutable", "name": "p1", "nameLocation": "40057:2:49", "nodeType": "VariableDeclaration", "scope": 14965, "src": "40049:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14945, "name": "address", "nodeType": "ElementaryTypeName", "src": "40049:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14948, "mutability": "mutable", "name": "p2", "nameLocation": "40066:2:49", "nodeType": "VariableDeclaration", "scope": 14965, "src": "40061:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14947, "name": "bool", "nodeType": "ElementaryTypeName", "src": "40061:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14950, "mutability": "mutable", "name": "p3", "nameLocation": "40075:2:49", "nodeType": "VariableDeclaration", "scope": 14965, "src": "40070:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14949, "name": "bool", "nodeType": "ElementaryTypeName", "src": "40070:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "40030:48:49"}, "returnParameters": {"id": 14952, "nodeType": "ParameterList", "parameters": [], "src": "40093:0:49"}, "scope": 18025, "src": "40018:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 14987, "nodeType": "Block", "src": "40271:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329", "id": 14979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "40315:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76", "typeString": "literal_string \"log(string,address,bool,address)\""}, "value": "log(string,address,bool,address)"}, {"id": 14980, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14967, "src": "40351:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 14981, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14969, "src": "40355:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 14982, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14971, "src": "40359:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 14983, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14973, "src": "40363:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76", "typeString": "literal_string \"log(string,address,bool,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 14977, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "40291:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 14978, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "40295:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "40291:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 14984, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40291:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14976, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "40275:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 14985, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40275:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 14986, "nodeType": "ExpressionStatement", "src": "40275:92:49"}]}, "id": 14988, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "40202:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14974, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14967, "mutability": "mutable", "name": "p0", "nameLocation": "40220:2:49", "nodeType": "VariableDeclaration", "scope": 14988, "src": "40206:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14966, "name": "string", "nodeType": "ElementaryTypeName", "src": "40206:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14969, "mutability": "mutable", "name": "p1", "nameLocation": "40232:2:49", "nodeType": "VariableDeclaration", "scope": 14988, "src": "40224:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14968, "name": "address", "nodeType": "ElementaryTypeName", "src": "40224:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14971, "mutability": "mutable", "name": "p2", "nameLocation": "40241:2:49", "nodeType": "VariableDeclaration", "scope": 14988, "src": "40236:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 14970, "name": "bool", "nodeType": "ElementaryTypeName", "src": "40236:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 14973, "mutability": "mutable", "name": "p3", "nameLocation": "40253:2:49", "nodeType": "VariableDeclaration", "scope": 14988, "src": "40245:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14972, "name": "address", "nodeType": "ElementaryTypeName", "src": "40245:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "40205:51:49"}, "returnParameters": {"id": 14975, "nodeType": "ParameterList", "parameters": [], "src": "40271:0:49"}, "scope": 18025, "src": "40193:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15010, "nodeType": "Block", "src": "40455:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c616464726573732c75696e7432353629", "id": 15002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "40499:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b", "typeString": "literal_string \"log(string,address,address,uint256)\""}, "value": "log(string,address,address,uint256)"}, {"id": 15003, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14990, "src": "40538:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15004, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14992, "src": "40542:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15005, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14994, "src": "40546:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15006, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14996, "src": "40550:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b", "typeString": "literal_string \"log(string,address,address,uint256)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15000, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "40475:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15001, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "40479:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "40475:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15007, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40475:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 14999, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "40459:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15008, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40459:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15009, "nodeType": "ExpressionStatement", "src": "40459:95:49"}]}, "id": 15011, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "40383:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 14997, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 14990, "mutability": "mutable", "name": "p0", "nameLocation": "40401:2:49", "nodeType": "VariableDeclaration", "scope": 15011, "src": "40387:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 14989, "name": "string", "nodeType": "ElementaryTypeName", "src": "40387:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 14992, "mutability": "mutable", "name": "p1", "nameLocation": "40413:2:49", "nodeType": "VariableDeclaration", "scope": 15011, "src": "40405:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14991, "name": "address", "nodeType": "ElementaryTypeName", "src": "40405:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14994, "mutability": "mutable", "name": "p2", "nameLocation": "40425:2:49", "nodeType": "VariableDeclaration", "scope": 15011, "src": "40417:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 14993, "name": "address", "nodeType": "ElementaryTypeName", "src": "40417:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 14996, "mutability": "mutable", "name": "p3", "nameLocation": "40437:2:49", "nodeType": "VariableDeclaration", "scope": 15011, "src": "40429:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 14995, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "40429:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "40386:54:49"}, "returnParameters": {"id": 14998, "nodeType": "ParameterList", "parameters": [], "src": "40455:0:49"}, "scope": 18025, "src": "40374:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15033, "nodeType": "Block", "src": "40648:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729", "id": 15025, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "40692:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76", "typeString": "literal_string \"log(string,address,address,string)\""}, "value": "log(string,address,address,string)"}, {"id": 15026, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15013, "src": "40730:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15027, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15015, "src": "40734:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15028, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15017, "src": "40738:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15029, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15019, "src": "40742:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76", "typeString": "literal_string \"log(string,address,address,string)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15023, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "40668:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15024, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "40672:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "40668:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15030, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40668:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15022, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "40652:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15031, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40652:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15032, "nodeType": "ExpressionStatement", "src": "40652:94:49"}]}, "id": 15034, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "40570:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15020, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15013, "mutability": "mutable", "name": "p0", "nameLocation": "40588:2:49", "nodeType": "VariableDeclaration", "scope": 15034, "src": "40574:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15012, "name": "string", "nodeType": "ElementaryTypeName", "src": "40574:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15015, "mutability": "mutable", "name": "p1", "nameLocation": "40600:2:49", "nodeType": "VariableDeclaration", "scope": 15034, "src": "40592:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15014, "name": "address", "nodeType": "ElementaryTypeName", "src": "40592:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15017, "mutability": "mutable", "name": "p2", "nameLocation": "40612:2:49", "nodeType": "VariableDeclaration", "scope": 15034, "src": "40604:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15016, "name": "address", "nodeType": "ElementaryTypeName", "src": "40604:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15019, "mutability": "mutable", "name": "p3", "nameLocation": "40630:2:49", "nodeType": "VariableDeclaration", "scope": 15034, "src": "40616:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15018, "name": "string", "nodeType": "ElementaryTypeName", "src": "40616:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "40573:60:49"}, "returnParameters": {"id": 15021, "nodeType": "ParameterList", "parameters": [], "src": "40648:0:49"}, "scope": 18025, "src": "40561:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15056, "nodeType": "Block", "src": "40831:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29", "id": 15048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "40875:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4", "typeString": "literal_string \"log(string,address,address,bool)\""}, "value": "log(string,address,address,bool)"}, {"id": 15049, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15036, "src": "40911:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15050, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15038, "src": "40915:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15051, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15040, "src": "40919:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15052, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15042, "src": "40923:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4", "typeString": "literal_string \"log(string,address,address,bool)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15046, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "40851:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15047, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "40855:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "40851:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15053, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40851:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15045, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "40835:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15054, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "40835:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15055, "nodeType": "ExpressionStatement", "src": "40835:92:49"}]}, "id": 15057, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "40762:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15043, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15036, "mutability": "mutable", "name": "p0", "nameLocation": "40780:2:49", "nodeType": "VariableDeclaration", "scope": 15057, "src": "40766:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15035, "name": "string", "nodeType": "ElementaryTypeName", "src": "40766:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15038, "mutability": "mutable", "name": "p1", "nameLocation": "40792:2:49", "nodeType": "VariableDeclaration", "scope": 15057, "src": "40784:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15037, "name": "address", "nodeType": "ElementaryTypeName", "src": "40784:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15040, "mutability": "mutable", "name": "p2", "nameLocation": "40804:2:49", "nodeType": "VariableDeclaration", "scope": 15057, "src": "40796:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15039, "name": "address", "nodeType": "ElementaryTypeName", "src": "40796:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15042, "mutability": "mutable", "name": "p3", "nameLocation": "40813:2:49", "nodeType": "VariableDeclaration", "scope": 15057, "src": "40808:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15041, "name": "bool", "nodeType": "ElementaryTypeName", "src": "40808:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "40765:51:49"}, "returnParameters": {"id": 15044, "nodeType": "ParameterList", "parameters": [], "src": "40831:0:49"}, "scope": 18025, "src": "40753:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15079, "nodeType": "Block", "src": "41015:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329", "id": 15071, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "41059:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15", "typeString": "literal_string \"log(string,address,address,address)\""}, "value": "log(string,address,address,address)"}, {"id": 15072, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15059, "src": "41098:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15073, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15061, "src": "41102:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15074, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15063, "src": "41106:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15075, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15065, "src": "41110:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15", "typeString": "literal_string \"log(string,address,address,address)\""}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15069, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "41035:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15070, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "41039:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "41035:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15076, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41035:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15068, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "41019:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15077, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41019:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15078, "nodeType": "ExpressionStatement", "src": "41019:95:49"}]}, "id": 15080, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "40943:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15066, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15059, "mutability": "mutable", "name": "p0", "nameLocation": "40961:2:49", "nodeType": "VariableDeclaration", "scope": 15080, "src": "40947:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15058, "name": "string", "nodeType": "ElementaryTypeName", "src": "40947:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15061, "mutability": "mutable", "name": "p1", "nameLocation": "40973:2:49", "nodeType": "VariableDeclaration", "scope": 15080, "src": "40965:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15060, "name": "address", "nodeType": "ElementaryTypeName", "src": "40965:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15063, "mutability": "mutable", "name": "p2", "nameLocation": "40985:2:49", "nodeType": "VariableDeclaration", "scope": 15080, "src": "40977:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15062, "name": "address", "nodeType": "ElementaryTypeName", "src": "40977:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15065, "mutability": "mutable", "name": "p3", "nameLocation": "40997:2:49", "nodeType": "VariableDeclaration", "scope": 15080, "src": "40989:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15064, "name": "address", "nodeType": "ElementaryTypeName", "src": "40989:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "40946:54:49"}, "returnParameters": {"id": 15067, "nodeType": "ParameterList", "parameters": [], "src": "41015:0:49"}, "scope": 18025, "src": "40934:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15102, "nodeType": "Block", "src": "41193:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c75696e743235362c75696e7432353629", "id": 15094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "41237:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b", "typeString": "literal_string \"log(bool,uint256,uint256,uint256)\""}, "value": "log(bool,uint256,uint256,uint256)"}, {"id": 15095, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15082, "src": "41274:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15096, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15084, "src": "41278:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15097, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15086, "src": "41282:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15098, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15088, "src": "41286:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b", "typeString": "literal_string \"log(bool,uint256,uint256,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15092, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "41213:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15093, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "41217:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "41213:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15099, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41213:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15091, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "41197:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15100, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41197:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15101, "nodeType": "ExpressionStatement", "src": "41197:93:49"}]}, "id": 15103, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "41130:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15089, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15082, "mutability": "mutable", "name": "p0", "nameLocation": "41139:2:49", "nodeType": "VariableDeclaration", "scope": 15103, "src": "41134:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15081, "name": "bool", "nodeType": "ElementaryTypeName", "src": "41134:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15084, "mutability": "mutable", "name": "p1", "nameLocation": "41151:2:49", "nodeType": "VariableDeclaration", "scope": 15103, "src": "41143:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15083, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41143:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15086, "mutability": "mutable", "name": "p2", "nameLocation": "41163:2:49", "nodeType": "VariableDeclaration", "scope": 15103, "src": "41155:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15085, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41155:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15088, "mutability": "mutable", "name": "p3", "nameLocation": "41175:2:49", "nodeType": "VariableDeclaration", "scope": 15103, "src": "41167:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15087, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41167:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "41133:45:49"}, "returnParameters": {"id": 15090, "nodeType": "ParameterList", "parameters": [], "src": "41193:0:49"}, "scope": 18025, "src": "41121:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15125, "nodeType": "Block", "src": "41375:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c75696e743235362c737472696e6729", "id": 15117, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "41419:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3", "typeString": "literal_string \"log(bool,uint256,uint256,string)\""}, "value": "log(bool,uint256,uint256,string)"}, {"id": 15118, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15105, "src": "41455:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15119, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15107, "src": "41459:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15120, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15109, "src": "41463:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15121, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15111, "src": "41467:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3", "typeString": "literal_string \"log(bool,uint256,uint256,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15115, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "41395:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15116, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "41399:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "41395:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15122, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41395:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15114, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "41379:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15123, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41379:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15124, "nodeType": "ExpressionStatement", "src": "41379:92:49"}]}, "id": 15126, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "41306:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15112, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15105, "mutability": "mutable", "name": "p0", "nameLocation": "41315:2:49", "nodeType": "VariableDeclaration", "scope": 15126, "src": "41310:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15104, "name": "bool", "nodeType": "ElementaryTypeName", "src": "41310:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15107, "mutability": "mutable", "name": "p1", "nameLocation": "41327:2:49", "nodeType": "VariableDeclaration", "scope": 15126, "src": "41319:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15106, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41319:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15109, "mutability": "mutable", "name": "p2", "nameLocation": "41339:2:49", "nodeType": "VariableDeclaration", "scope": 15126, "src": "41331:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15108, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41331:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15111, "mutability": "mutable", "name": "p3", "nameLocation": "41357:2:49", "nodeType": "VariableDeclaration", "scope": 15126, "src": "41343:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15110, "name": "string", "nodeType": "ElementaryTypeName", "src": "41343:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "41309:51:49"}, "returnParameters": {"id": 15113, "nodeType": "ParameterList", "parameters": [], "src": "41375:0:49"}, "scope": 18025, "src": "41297:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15148, "nodeType": "Block", "src": "41547:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c75696e743235362c626f6f6c29", "id": 15140, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "41591:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d", "typeString": "literal_string \"log(bool,uint256,uint256,bool)\""}, "value": "log(bool,uint256,uint256,bool)"}, {"id": 15141, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15128, "src": "41625:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15142, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15130, "src": "41629:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15143, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15132, "src": "41633:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15144, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15134, "src": "41637:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d", "typeString": "literal_string \"log(bool,uint256,uint256,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15138, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "41567:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15139, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "41571:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "41567:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15145, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41567:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15137, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "41551:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15146, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41551:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15147, "nodeType": "ExpressionStatement", "src": "41551:90:49"}]}, "id": 15149, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "41487:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15135, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15128, "mutability": "mutable", "name": "p0", "nameLocation": "41496:2:49", "nodeType": "VariableDeclaration", "scope": 15149, "src": "41491:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15127, "name": "bool", "nodeType": "ElementaryTypeName", "src": "41491:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15130, "mutability": "mutable", "name": "p1", "nameLocation": "41508:2:49", "nodeType": "VariableDeclaration", "scope": 15149, "src": "41500:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15129, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41500:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15132, "mutability": "mutable", "name": "p2", "nameLocation": "41520:2:49", "nodeType": "VariableDeclaration", "scope": 15149, "src": "41512:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15131, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41512:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15134, "mutability": "mutable", "name": "p3", "nameLocation": "41529:2:49", "nodeType": "VariableDeclaration", "scope": 15149, "src": "41524:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15133, "name": "bool", "nodeType": "ElementaryTypeName", "src": "41524:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "41490:42:49"}, "returnParameters": {"id": 15136, "nodeType": "ParameterList", "parameters": [], "src": "41547:0:49"}, "scope": 18025, "src": "41478:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15171, "nodeType": "Block", "src": "41720:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c75696e743235362c6164647265737329", "id": 15163, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "41764:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010", "typeString": "literal_string \"log(bool,uint256,uint256,address)\""}, "value": "log(bool,uint256,uint256,address)"}, {"id": 15164, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15151, "src": "41801:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15165, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15153, "src": "41805:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15166, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15155, "src": "41809:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15167, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15157, "src": "41813:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010", "typeString": "literal_string \"log(bool,uint256,uint256,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15161, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "41740:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15162, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "41744:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "41740:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15168, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41740:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15160, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "41724:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15169, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41724:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15170, "nodeType": "ExpressionStatement", "src": "41724:93:49"}]}, "id": 15172, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "41657:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15158, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15151, "mutability": "mutable", "name": "p0", "nameLocation": "41666:2:49", "nodeType": "VariableDeclaration", "scope": 15172, "src": "41661:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15150, "name": "bool", "nodeType": "ElementaryTypeName", "src": "41661:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15153, "mutability": "mutable", "name": "p1", "nameLocation": "41678:2:49", "nodeType": "VariableDeclaration", "scope": 15172, "src": "41670:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15152, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41670:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15155, "mutability": "mutable", "name": "p2", "nameLocation": "41690:2:49", "nodeType": "VariableDeclaration", "scope": 15172, "src": "41682:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15154, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41682:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15157, "mutability": "mutable", "name": "p3", "nameLocation": "41702:2:49", "nodeType": "VariableDeclaration", "scope": 15172, "src": "41694:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15156, "name": "address", "nodeType": "ElementaryTypeName", "src": "41694:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "41660:45:49"}, "returnParameters": {"id": 15159, "nodeType": "ParameterList", "parameters": [], "src": "41720:0:49"}, "scope": 18025, "src": "41648:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15194, "nodeType": "Block", "src": "41902:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c737472696e672c75696e7432353629", "id": 15186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "41946:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e", "typeString": "literal_string \"log(bool,uint256,string,uint256)\""}, "value": "log(bool,uint256,string,uint256)"}, {"id": 15187, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15174, "src": "41982:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15188, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15176, "src": "41986:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15189, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15178, "src": "41990:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15190, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15180, "src": "41994:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e", "typeString": "literal_string \"log(bool,uint256,string,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15184, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "41922:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15185, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "41926:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "41922:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15191, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41922:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15183, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "41906:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15192, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "41906:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15193, "nodeType": "ExpressionStatement", "src": "41906:92:49"}]}, "id": 15195, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "41833:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15181, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15174, "mutability": "mutable", "name": "p0", "nameLocation": "41842:2:49", "nodeType": "VariableDeclaration", "scope": 15195, "src": "41837:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15173, "name": "bool", "nodeType": "ElementaryTypeName", "src": "41837:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15176, "mutability": "mutable", "name": "p1", "nameLocation": "41854:2:49", "nodeType": "VariableDeclaration", "scope": 15195, "src": "41846:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15175, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41846:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15178, "mutability": "mutable", "name": "p2", "nameLocation": "41872:2:49", "nodeType": "VariableDeclaration", "scope": 15195, "src": "41858:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15177, "name": "string", "nodeType": "ElementaryTypeName", "src": "41858:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15180, "mutability": "mutable", "name": "p3", "nameLocation": "41884:2:49", "nodeType": "VariableDeclaration", "scope": 15195, "src": "41876:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15179, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "41876:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "41836:51:49"}, "returnParameters": {"id": 15182, "nodeType": "ParameterList", "parameters": [], "src": "41902:0:49"}, "scope": 18025, "src": "41824:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15217, "nodeType": "Block", "src": "42089:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c737472696e672c737472696e6729", "id": 15209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "42133:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07", "typeString": "literal_string \"log(bool,uint256,string,string)\""}, "value": "log(bool,uint256,string,string)"}, {"id": 15210, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15197, "src": "42168:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15211, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15199, "src": "42172:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15212, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15201, "src": "42176:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15213, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15203, "src": "42180:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07", "typeString": "literal_string \"log(bool,uint256,string,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15207, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "42109:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15208, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "42113:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "42109:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15214, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42109:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15206, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "42093:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15215, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42093:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15216, "nodeType": "ExpressionStatement", "src": "42093:91:49"}]}, "id": 15218, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "42014:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15204, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15197, "mutability": "mutable", "name": "p0", "nameLocation": "42023:2:49", "nodeType": "VariableDeclaration", "scope": 15218, "src": "42018:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15196, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42018:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15199, "mutability": "mutable", "name": "p1", "nameLocation": "42035:2:49", "nodeType": "VariableDeclaration", "scope": 15218, "src": "42027:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15198, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "42027:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15201, "mutability": "mutable", "name": "p2", "nameLocation": "42053:2:49", "nodeType": "VariableDeclaration", "scope": 15218, "src": "42039:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15200, "name": "string", "nodeType": "ElementaryTypeName", "src": "42039:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15203, "mutability": "mutable", "name": "p3", "nameLocation": "42071:2:49", "nodeType": "VariableDeclaration", "scope": 15218, "src": "42057:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15202, "name": "string", "nodeType": "ElementaryTypeName", "src": "42057:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "42017:57:49"}, "returnParameters": {"id": 15205, "nodeType": "ParameterList", "parameters": [], "src": "42089:0:49"}, "scope": 18025, "src": "42005:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15240, "nodeType": "Block", "src": "42266:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c737472696e672c626f6f6c29", "id": 15232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "42310:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2", "typeString": "literal_string \"log(bool,uint256,string,bool)\""}, "value": "log(bool,uint256,string,bool)"}, {"id": 15233, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15220, "src": "42343:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15234, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15222, "src": "42347:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15235, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15224, "src": "42351:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15236, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15226, "src": "42355:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2", "typeString": "literal_string \"log(bool,uint256,string,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15230, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "42286:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15231, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "42290:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "42286:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15237, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42286:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15229, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "42270:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15238, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42270:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15239, "nodeType": "ExpressionStatement", "src": "42270:89:49"}]}, "id": 15241, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "42200:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15227, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15220, "mutability": "mutable", "name": "p0", "nameLocation": "42209:2:49", "nodeType": "VariableDeclaration", "scope": 15241, "src": "42204:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15219, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42204:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15222, "mutability": "mutable", "name": "p1", "nameLocation": "42221:2:49", "nodeType": "VariableDeclaration", "scope": 15241, "src": "42213:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15221, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "42213:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15224, "mutability": "mutable", "name": "p2", "nameLocation": "42239:2:49", "nodeType": "VariableDeclaration", "scope": 15241, "src": "42225:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15223, "name": "string", "nodeType": "ElementaryTypeName", "src": "42225:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15226, "mutability": "mutable", "name": "p3", "nameLocation": "42248:2:49", "nodeType": "VariableDeclaration", "scope": 15241, "src": "42243:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15225, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42243:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "42203:48:49"}, "returnParameters": {"id": 15228, "nodeType": "ParameterList", "parameters": [], "src": "42266:0:49"}, "scope": 18025, "src": "42191:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15263, "nodeType": "Block", "src": "42444:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c737472696e672c6164647265737329", "id": 15255, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "42488:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab", "typeString": "literal_string \"log(bool,uint256,string,address)\""}, "value": "log(bool,uint256,string,address)"}, {"id": 15256, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15243, "src": "42524:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15257, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15245, "src": "42528:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15258, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15247, "src": "42532:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15259, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15249, "src": "42536:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab", "typeString": "literal_string \"log(bool,uint256,string,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15253, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "42464:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15254, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "42468:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "42464:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15260, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42464:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15252, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "42448:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15261, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42448:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15262, "nodeType": "ExpressionStatement", "src": "42448:92:49"}]}, "id": 15264, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "42375:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15250, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15243, "mutability": "mutable", "name": "p0", "nameLocation": "42384:2:49", "nodeType": "VariableDeclaration", "scope": 15264, "src": "42379:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15242, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42379:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15245, "mutability": "mutable", "name": "p1", "nameLocation": "42396:2:49", "nodeType": "VariableDeclaration", "scope": 15264, "src": "42388:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15244, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "42388:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15247, "mutability": "mutable", "name": "p2", "nameLocation": "42414:2:49", "nodeType": "VariableDeclaration", "scope": 15264, "src": "42400:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15246, "name": "string", "nodeType": "ElementaryTypeName", "src": "42400:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15249, "mutability": "mutable", "name": "p3", "nameLocation": "42426:2:49", "nodeType": "VariableDeclaration", "scope": 15264, "src": "42418:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15248, "name": "address", "nodeType": "ElementaryTypeName", "src": "42418:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "42378:51:49"}, "returnParameters": {"id": 15251, "nodeType": "ParameterList", "parameters": [], "src": "42444:0:49"}, "scope": 18025, "src": "42366:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15286, "nodeType": "Block", "src": "42616:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c626f6f6c2c75696e7432353629", "id": 15278, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "42660:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443", "typeString": "literal_string \"log(bool,uint256,bool,uint256)\""}, "value": "log(bool,uint256,bool,uint256)"}, {"id": 15279, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15266, "src": "42694:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15280, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15268, "src": "42698:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15281, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15270, "src": "42702:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15282, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15272, "src": "42706:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443", "typeString": "literal_string \"log(bool,uint256,bool,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15276, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "42636:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15277, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "42640:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "42636:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15283, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42636:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15275, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "42620:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15284, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42620:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15285, "nodeType": "ExpressionStatement", "src": "42620:90:49"}]}, "id": 15287, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "42556:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15273, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15266, "mutability": "mutable", "name": "p0", "nameLocation": "42565:2:49", "nodeType": "VariableDeclaration", "scope": 15287, "src": "42560:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15265, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42560:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15268, "mutability": "mutable", "name": "p1", "nameLocation": "42577:2:49", "nodeType": "VariableDeclaration", "scope": 15287, "src": "42569:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15267, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "42569:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15270, "mutability": "mutable", "name": "p2", "nameLocation": "42586:2:49", "nodeType": "VariableDeclaration", "scope": 15287, "src": "42581:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15269, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42581:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15272, "mutability": "mutable", "name": "p3", "nameLocation": "42598:2:49", "nodeType": "VariableDeclaration", "scope": 15287, "src": "42590:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15271, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "42590:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "42559:42:49"}, "returnParameters": {"id": 15274, "nodeType": "ParameterList", "parameters": [], "src": "42616:0:49"}, "scope": 18025, "src": "42547:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15309, "nodeType": "Block", "src": "42792:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c626f6f6c2c737472696e6729", "id": 15301, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "42836:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0", "typeString": "literal_string \"log(bool,uint256,bool,string)\""}, "value": "log(bool,uint256,bool,string)"}, {"id": 15302, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15289, "src": "42869:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15303, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15291, "src": "42873:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15304, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15293, "src": "42877:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15305, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15295, "src": "42881:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0", "typeString": "literal_string \"log(bool,uint256,bool,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15299, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "42812:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15300, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "42816:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "42812:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42812:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15298, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "42796:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15307, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42796:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15308, "nodeType": "ExpressionStatement", "src": "42796:89:49"}]}, "id": 15310, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "42726:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15296, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15289, "mutability": "mutable", "name": "p0", "nameLocation": "42735:2:49", "nodeType": "VariableDeclaration", "scope": 15310, "src": "42730:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15288, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42730:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15291, "mutability": "mutable", "name": "p1", "nameLocation": "42747:2:49", "nodeType": "VariableDeclaration", "scope": 15310, "src": "42739:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15290, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "42739:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15293, "mutability": "mutable", "name": "p2", "nameLocation": "42756:2:49", "nodeType": "VariableDeclaration", "scope": 15310, "src": "42751:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15292, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42751:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15295, "mutability": "mutable", "name": "p3", "nameLocation": "42774:2:49", "nodeType": "VariableDeclaration", "scope": 15310, "src": "42760:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15294, "name": "string", "nodeType": "ElementaryTypeName", "src": "42760:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "42729:48:49"}, "returnParameters": {"id": 15297, "nodeType": "ParameterList", "parameters": [], "src": "42792:0:49"}, "scope": 18025, "src": "42717:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15332, "nodeType": "Block", "src": "42958:95:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c626f6f6c2c626f6f6c29", "id": 15324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "43002:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2", "typeString": "literal_string \"log(bool,uint256,bool,bool)\""}, "value": "log(bool,uint256,bool,bool)"}, {"id": 15325, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15312, "src": "43033:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15326, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15314, "src": "43037:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15327, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15316, "src": "43041:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15328, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15318, "src": "43045:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2", "typeString": "literal_string \"log(bool,uint256,bool,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15322, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "42978:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15323, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "42982:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "42978:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15329, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42978:70:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15321, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "42962:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15330, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "42962:87:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15331, "nodeType": "ExpressionStatement", "src": "42962:87:49"}]}, "id": 15333, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "42901:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15319, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15312, "mutability": "mutable", "name": "p0", "nameLocation": "42910:2:49", "nodeType": "VariableDeclaration", "scope": 15333, "src": "42905:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15311, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42905:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15314, "mutability": "mutable", "name": "p1", "nameLocation": "42922:2:49", "nodeType": "VariableDeclaration", "scope": 15333, "src": "42914:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15313, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "42914:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15316, "mutability": "mutable", "name": "p2", "nameLocation": "42931:2:49", "nodeType": "VariableDeclaration", "scope": 15333, "src": "42926:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15315, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42926:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15318, "mutability": "mutable", "name": "p3", "nameLocation": "42940:2:49", "nodeType": "VariableDeclaration", "scope": 15333, "src": "42935:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15317, "name": "bool", "nodeType": "ElementaryTypeName", "src": "42935:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "42904:39:49"}, "returnParameters": {"id": 15320, "nodeType": "ParameterList", "parameters": [], "src": "42958:0:49"}, "scope": 18025, "src": "42892:161:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15355, "nodeType": "Block", "src": "43125:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c626f6f6c2c6164647265737329", "id": 15347, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "43169:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e", "typeString": "literal_string \"log(bool,uint256,bool,address)\""}, "value": "log(bool,uint256,bool,address)"}, {"id": 15348, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15335, "src": "43203:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15349, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15337, "src": "43207:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15350, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15339, "src": "43211:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15351, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15341, "src": "43215:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e", "typeString": "literal_string \"log(bool,uint256,bool,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15345, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "43145:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15346, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "43149:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "43145:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15352, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43145:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15344, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "43129:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15353, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43129:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15354, "nodeType": "ExpressionStatement", "src": "43129:90:49"}]}, "id": 15356, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "43065:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15342, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15335, "mutability": "mutable", "name": "p0", "nameLocation": "43074:2:49", "nodeType": "VariableDeclaration", "scope": 15356, "src": "43069:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15334, "name": "bool", "nodeType": "ElementaryTypeName", "src": "43069:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15337, "mutability": "mutable", "name": "p1", "nameLocation": "43086:2:49", "nodeType": "VariableDeclaration", "scope": 15356, "src": "43078:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15336, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "43078:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15339, "mutability": "mutable", "name": "p2", "nameLocation": "43095:2:49", "nodeType": "VariableDeclaration", "scope": 15356, "src": "43090:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15338, "name": "bool", "nodeType": "ElementaryTypeName", "src": "43090:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15341, "mutability": "mutable", "name": "p3", "nameLocation": "43107:2:49", "nodeType": "VariableDeclaration", "scope": 15356, "src": "43099:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15340, "name": "address", "nodeType": "ElementaryTypeName", "src": "43099:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "43068:42:49"}, "returnParameters": {"id": 15343, "nodeType": "ParameterList", "parameters": [], "src": "43125:0:49"}, "scope": 18025, "src": "43056:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15378, "nodeType": "Block", "src": "43298:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c616464726573732c75696e7432353629", "id": 15370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "43342:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560", "typeString": "literal_string \"log(bool,uint256,address,uint256)\""}, "value": "log(bool,uint256,address,uint256)"}, {"id": 15371, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15358, "src": "43379:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15372, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15360, "src": "43383:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15373, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15362, "src": "43387:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15374, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15364, "src": "43391:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560", "typeString": "literal_string \"log(bool,uint256,address,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15368, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "43318:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15369, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "43322:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "43318:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15375, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43318:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15367, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "43302:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15376, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43302:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15377, "nodeType": "ExpressionStatement", "src": "43302:93:49"}]}, "id": 15379, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "43235:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15365, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15358, "mutability": "mutable", "name": "p0", "nameLocation": "43244:2:49", "nodeType": "VariableDeclaration", "scope": 15379, "src": "43239:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15357, "name": "bool", "nodeType": "ElementaryTypeName", "src": "43239:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15360, "mutability": "mutable", "name": "p1", "nameLocation": "43256:2:49", "nodeType": "VariableDeclaration", "scope": 15379, "src": "43248:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15359, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "43248:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15362, "mutability": "mutable", "name": "p2", "nameLocation": "43268:2:49", "nodeType": "VariableDeclaration", "scope": 15379, "src": "43260:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15361, "name": "address", "nodeType": "ElementaryTypeName", "src": "43260:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15364, "mutability": "mutable", "name": "p3", "nameLocation": "43280:2:49", "nodeType": "VariableDeclaration", "scope": 15379, "src": "43272:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15363, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "43272:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "43238:45:49"}, "returnParameters": {"id": 15366, "nodeType": "ParameterList", "parameters": [], "src": "43298:0:49"}, "scope": 18025, "src": "43226:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15401, "nodeType": "Block", "src": "43480:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c616464726573732c737472696e6729", "id": 15393, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "43524:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94", "typeString": "literal_string \"log(bool,uint256,address,string)\""}, "value": "log(bool,uint256,address,string)"}, {"id": 15394, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15381, "src": "43560:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15395, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15383, "src": "43564:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15396, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15385, "src": "43568:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15397, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15387, "src": "43572:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94", "typeString": "literal_string \"log(bool,uint256,address,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15391, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "43500:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15392, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "43504:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "43500:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15398, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43500:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15390, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "43484:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15399, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43484:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15400, "nodeType": "ExpressionStatement", "src": "43484:92:49"}]}, "id": 15402, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "43411:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15388, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15381, "mutability": "mutable", "name": "p0", "nameLocation": "43420:2:49", "nodeType": "VariableDeclaration", "scope": 15402, "src": "43415:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15380, "name": "bool", "nodeType": "ElementaryTypeName", "src": "43415:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15383, "mutability": "mutable", "name": "p1", "nameLocation": "43432:2:49", "nodeType": "VariableDeclaration", "scope": 15402, "src": "43424:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15382, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "43424:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15385, "mutability": "mutable", "name": "p2", "nameLocation": "43444:2:49", "nodeType": "VariableDeclaration", "scope": 15402, "src": "43436:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15384, "name": "address", "nodeType": "ElementaryTypeName", "src": "43436:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15387, "mutability": "mutable", "name": "p3", "nameLocation": "43462:2:49", "nodeType": "VariableDeclaration", "scope": 15402, "src": "43448:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15386, "name": "string", "nodeType": "ElementaryTypeName", "src": "43448:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "43414:51:49"}, "returnParameters": {"id": 15389, "nodeType": "ParameterList", "parameters": [], "src": "43480:0:49"}, "scope": 18025, "src": "43402:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15424, "nodeType": "Block", "src": "43652:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c616464726573732c626f6f6c29", "id": 15416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "43696:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8", "typeString": "literal_string \"log(bool,uint256,address,bool)\""}, "value": "log(bool,uint256,address,bool)"}, {"id": 15417, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15404, "src": "43730:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15418, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15406, "src": "43734:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15419, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15408, "src": "43738:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15420, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15410, "src": "43742:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8", "typeString": "literal_string \"log(bool,uint256,address,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15414, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "43672:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15415, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "43676:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "43672:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15421, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43672:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15413, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "43656:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15422, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43656:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15423, "nodeType": "ExpressionStatement", "src": "43656:90:49"}]}, "id": 15425, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "43592:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15411, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15404, "mutability": "mutable", "name": "p0", "nameLocation": "43601:2:49", "nodeType": "VariableDeclaration", "scope": 15425, "src": "43596:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15403, "name": "bool", "nodeType": "ElementaryTypeName", "src": "43596:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15406, "mutability": "mutable", "name": "p1", "nameLocation": "43613:2:49", "nodeType": "VariableDeclaration", "scope": 15425, "src": "43605:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15405, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "43605:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15408, "mutability": "mutable", "name": "p2", "nameLocation": "43625:2:49", "nodeType": "VariableDeclaration", "scope": 15425, "src": "43617:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15407, "name": "address", "nodeType": "ElementaryTypeName", "src": "43617:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15410, "mutability": "mutable", "name": "p3", "nameLocation": "43634:2:49", "nodeType": "VariableDeclaration", "scope": 15425, "src": "43629:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15409, "name": "bool", "nodeType": "ElementaryTypeName", "src": "43629:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "43595:42:49"}, "returnParameters": {"id": 15412, "nodeType": "ParameterList", "parameters": [], "src": "43652:0:49"}, "scope": 18025, "src": "43583:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15447, "nodeType": "Block", "src": "43825:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c75696e743235362c616464726573732c6164647265737329", "id": 15439, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "43869:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd", "typeString": "literal_string \"log(bool,uint256,address,address)\""}, "value": "log(bool,uint256,address,address)"}, {"id": 15440, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15427, "src": "43906:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15441, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15429, "src": "43910:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15442, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15431, "src": "43914:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15443, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15433, "src": "43918:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd", "typeString": "literal_string \"log(bool,uint256,address,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15437, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "43845:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15438, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "43849:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "43845:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15444, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43845:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15436, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "43829:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15445, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "43829:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15446, "nodeType": "ExpressionStatement", "src": "43829:93:49"}]}, "id": 15448, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "43762:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15434, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15427, "mutability": "mutable", "name": "p0", "nameLocation": "43771:2:49", "nodeType": "VariableDeclaration", "scope": 15448, "src": "43766:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15426, "name": "bool", "nodeType": "ElementaryTypeName", "src": "43766:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15429, "mutability": "mutable", "name": "p1", "nameLocation": "43783:2:49", "nodeType": "VariableDeclaration", "scope": 15448, "src": "43775:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15428, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "43775:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15431, "mutability": "mutable", "name": "p2", "nameLocation": "43795:2:49", "nodeType": "VariableDeclaration", "scope": 15448, "src": "43787:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15430, "name": "address", "nodeType": "ElementaryTypeName", "src": "43787:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15433, "mutability": "mutable", "name": "p3", "nameLocation": "43807:2:49", "nodeType": "VariableDeclaration", "scope": 15448, "src": "43799:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15432, "name": "address", "nodeType": "ElementaryTypeName", "src": "43799:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "43765:45:49"}, "returnParameters": {"id": 15435, "nodeType": "ParameterList", "parameters": [], "src": "43825:0:49"}, "scope": 18025, "src": "43753:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15470, "nodeType": "Block", "src": "44007:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e743235362c75696e7432353629", "id": 15462, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "44051:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0", "typeString": "literal_string \"log(bool,string,uint256,uint256)\""}, "value": "log(bool,string,uint256,uint256)"}, {"id": 15463, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15450, "src": "44087:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15464, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15452, "src": "44091:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15465, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15454, "src": "44095:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15466, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15456, "src": "44099:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0", "typeString": "literal_string \"log(bool,string,uint256,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15460, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "44027:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15461, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "44031:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "44027:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15467, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44027:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15459, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "44011:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15468, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44011:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15469, "nodeType": "ExpressionStatement", "src": "44011:92:49"}]}, "id": 15471, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "43938:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15457, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15450, "mutability": "mutable", "name": "p0", "nameLocation": "43947:2:49", "nodeType": "VariableDeclaration", "scope": 15471, "src": "43942:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15449, "name": "bool", "nodeType": "ElementaryTypeName", "src": "43942:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15452, "mutability": "mutable", "name": "p1", "nameLocation": "43965:2:49", "nodeType": "VariableDeclaration", "scope": 15471, "src": "43951:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15451, "name": "string", "nodeType": "ElementaryTypeName", "src": "43951:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15454, "mutability": "mutable", "name": "p2", "nameLocation": "43977:2:49", "nodeType": "VariableDeclaration", "scope": 15471, "src": "43969:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15453, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "43969:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15456, "mutability": "mutable", "name": "p3", "nameLocation": "43989:2:49", "nodeType": "VariableDeclaration", "scope": 15471, "src": "43981:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15455, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "43981:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "43941:51:49"}, "returnParameters": {"id": 15458, "nodeType": "ParameterList", "parameters": [], "src": "44007:0:49"}, "scope": 18025, "src": "43929:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15493, "nodeType": "Block", "src": "44194:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e743235362c737472696e6729", "id": 15485, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "44238:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d", "typeString": "literal_string \"log(bool,string,uint256,string)\""}, "value": "log(bool,string,uint256,string)"}, {"id": 15486, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15473, "src": "44273:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15487, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15475, "src": "44277:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15488, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15477, "src": "44281:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15489, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15479, "src": "44285:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d", "typeString": "literal_string \"log(bool,string,uint256,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15483, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "44214:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15484, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "44218:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "44214:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15490, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44214:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15482, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "44198:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15491, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44198:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15492, "nodeType": "ExpressionStatement", "src": "44198:91:49"}]}, "id": 15494, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "44119:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15480, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15473, "mutability": "mutable", "name": "p0", "nameLocation": "44128:2:49", "nodeType": "VariableDeclaration", "scope": 15494, "src": "44123:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15472, "name": "bool", "nodeType": "ElementaryTypeName", "src": "44123:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15475, "mutability": "mutable", "name": "p1", "nameLocation": "44146:2:49", "nodeType": "VariableDeclaration", "scope": 15494, "src": "44132:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15474, "name": "string", "nodeType": "ElementaryTypeName", "src": "44132:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15477, "mutability": "mutable", "name": "p2", "nameLocation": "44158:2:49", "nodeType": "VariableDeclaration", "scope": 15494, "src": "44150:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15476, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "44150:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15479, "mutability": "mutable", "name": "p3", "nameLocation": "44176:2:49", "nodeType": "VariableDeclaration", "scope": 15494, "src": "44162:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15478, "name": "string", "nodeType": "ElementaryTypeName", "src": "44162:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "44122:57:49"}, "returnParameters": {"id": 15481, "nodeType": "ParameterList", "parameters": [], "src": "44194:0:49"}, "scope": 18025, "src": "44110:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15516, "nodeType": "Block", "src": "44371:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e743235362c626f6f6c29", "id": 15508, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "44415:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411", "typeString": "literal_string \"log(bool,string,uint256,bool)\""}, "value": "log(bool,string,uint256,bool)"}, {"id": 15509, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15496, "src": "44448:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15510, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15498, "src": "44452:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15511, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15500, "src": "44456:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15512, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15502, "src": "44460:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411", "typeString": "literal_string \"log(bool,string,uint256,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15506, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "44391:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15507, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "44395:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "44391:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15513, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44391:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15505, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "44375:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15514, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44375:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15515, "nodeType": "ExpressionStatement", "src": "44375:89:49"}]}, "id": 15517, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "44305:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15503, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15496, "mutability": "mutable", "name": "p0", "nameLocation": "44314:2:49", "nodeType": "VariableDeclaration", "scope": 15517, "src": "44309:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15495, "name": "bool", "nodeType": "ElementaryTypeName", "src": "44309:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15498, "mutability": "mutable", "name": "p1", "nameLocation": "44332:2:49", "nodeType": "VariableDeclaration", "scope": 15517, "src": "44318:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15497, "name": "string", "nodeType": "ElementaryTypeName", "src": "44318:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15500, "mutability": "mutable", "name": "p2", "nameLocation": "44344:2:49", "nodeType": "VariableDeclaration", "scope": 15517, "src": "44336:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15499, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "44336:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15502, "mutability": "mutable", "name": "p3", "nameLocation": "44353:2:49", "nodeType": "VariableDeclaration", "scope": 15517, "src": "44348:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15501, "name": "bool", "nodeType": "ElementaryTypeName", "src": "44348:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "44308:48:49"}, "returnParameters": {"id": 15504, "nodeType": "ParameterList", "parameters": [], "src": "44371:0:49"}, "scope": 18025, "src": "44296:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15539, "nodeType": "Block", "src": "44549:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e743235362c6164647265737329", "id": 15531, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "44593:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056", "typeString": "literal_string \"log(bool,string,uint256,address)\""}, "value": "log(bool,string,uint256,address)"}, {"id": 15532, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15519, "src": "44629:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15533, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15521, "src": "44633:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15534, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15523, "src": "44637:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15535, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15525, "src": "44641:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056", "typeString": "literal_string \"log(bool,string,uint256,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15529, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "44569:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15530, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "44573:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "44569:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15536, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44569:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15528, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "44553:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15537, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44553:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15538, "nodeType": "ExpressionStatement", "src": "44553:92:49"}]}, "id": 15540, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "44480:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15526, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15519, "mutability": "mutable", "name": "p0", "nameLocation": "44489:2:49", "nodeType": "VariableDeclaration", "scope": 15540, "src": "44484:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15518, "name": "bool", "nodeType": "ElementaryTypeName", "src": "44484:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15521, "mutability": "mutable", "name": "p1", "nameLocation": "44507:2:49", "nodeType": "VariableDeclaration", "scope": 15540, "src": "44493:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15520, "name": "string", "nodeType": "ElementaryTypeName", "src": "44493:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15523, "mutability": "mutable", "name": "p2", "nameLocation": "44519:2:49", "nodeType": "VariableDeclaration", "scope": 15540, "src": "44511:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15522, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "44511:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15525, "mutability": "mutable", "name": "p3", "nameLocation": "44531:2:49", "nodeType": "VariableDeclaration", "scope": 15540, "src": "44523:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15524, "name": "address", "nodeType": "ElementaryTypeName", "src": "44523:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "44483:51:49"}, "returnParameters": {"id": 15527, "nodeType": "ParameterList", "parameters": [], "src": "44549:0:49"}, "scope": 18025, "src": "44471:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15562, "nodeType": "Block", "src": "44736:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7432353629", "id": 15554, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "44780:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2", "typeString": "literal_string \"log(bool,string,string,uint256)\""}, "value": "log(bool,string,string,uint256)"}, {"id": 15555, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15542, "src": "44815:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15556, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15544, "src": "44819:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15557, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15546, "src": "44823:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15558, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15548, "src": "44827:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2", "typeString": "literal_string \"log(bool,string,string,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15552, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "44756:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15553, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "44760:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "44756:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15559, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44756:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15551, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "44740:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15560, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44740:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15561, "nodeType": "ExpressionStatement", "src": "44740:91:49"}]}, "id": 15563, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "44661:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15549, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15542, "mutability": "mutable", "name": "p0", "nameLocation": "44670:2:49", "nodeType": "VariableDeclaration", "scope": 15563, "src": "44665:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15541, "name": "bool", "nodeType": "ElementaryTypeName", "src": "44665:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15544, "mutability": "mutable", "name": "p1", "nameLocation": "44688:2:49", "nodeType": "VariableDeclaration", "scope": 15563, "src": "44674:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15543, "name": "string", "nodeType": "ElementaryTypeName", "src": "44674:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15546, "mutability": "mutable", "name": "p2", "nameLocation": "44706:2:49", "nodeType": "VariableDeclaration", "scope": 15563, "src": "44692:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15545, "name": "string", "nodeType": "ElementaryTypeName", "src": "44692:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15548, "mutability": "mutable", "name": "p3", "nameLocation": "44718:2:49", "nodeType": "VariableDeclaration", "scope": 15563, "src": "44710:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15547, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "44710:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "44664:57:49"}, "returnParameters": {"id": 15550, "nodeType": "ParameterList", "parameters": [], "src": "44736:0:49"}, "scope": 18025, "src": "44652:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15585, "nodeType": "Block", "src": "44928:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729", "id": 15577, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "44972:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9", "typeString": "literal_string \"log(bool,string,string,string)\""}, "value": "log(bool,string,string,string)"}, {"id": 15578, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15565, "src": "45006:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15579, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15567, "src": "45010:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15580, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15569, "src": "45014:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15581, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15571, "src": "45018:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9", "typeString": "literal_string \"log(bool,string,string,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15575, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "44948:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15576, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "44952:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "44948:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15582, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44948:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15574, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "44932:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15583, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "44932:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15584, "nodeType": "ExpressionStatement", "src": "44932:90:49"}]}, "id": 15586, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "44847:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15572, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15565, "mutability": "mutable", "name": "p0", "nameLocation": "44856:2:49", "nodeType": "VariableDeclaration", "scope": 15586, "src": "44851:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15564, "name": "bool", "nodeType": "ElementaryTypeName", "src": "44851:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15567, "mutability": "mutable", "name": "p1", "nameLocation": "44874:2:49", "nodeType": "VariableDeclaration", "scope": 15586, "src": "44860:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15566, "name": "string", "nodeType": "ElementaryTypeName", "src": "44860:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15569, "mutability": "mutable", "name": "p2", "nameLocation": "44892:2:49", "nodeType": "VariableDeclaration", "scope": 15586, "src": "44878:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15568, "name": "string", "nodeType": "ElementaryTypeName", "src": "44878:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15571, "mutability": "mutable", "name": "p3", "nameLocation": "44910:2:49", "nodeType": "VariableDeclaration", "scope": 15586, "src": "44896:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15570, "name": "string", "nodeType": "ElementaryTypeName", "src": "44896:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "44850:63:49"}, "returnParameters": {"id": 15573, "nodeType": "ParameterList", "parameters": [], "src": "44928:0:49"}, "scope": 18025, "src": "44838:188:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15608, "nodeType": "Block", "src": "45110:96:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29", "id": 15600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "45154:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1", "typeString": "literal_string \"log(bool,string,string,bool)\""}, "value": "log(bool,string,string,bool)"}, {"id": 15601, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15588, "src": "45186:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15602, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15590, "src": "45190:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15603, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15592, "src": "45194:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15604, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15594, "src": "45198:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1", "typeString": "literal_string \"log(bool,string,string,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15598, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "45130:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15599, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "45134:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "45130:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15605, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45130:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15597, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "45114:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15606, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45114:88:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15607, "nodeType": "ExpressionStatement", "src": "45114:88:49"}]}, "id": 15609, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "45038:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15595, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15588, "mutability": "mutable", "name": "p0", "nameLocation": "45047:2:49", "nodeType": "VariableDeclaration", "scope": 15609, "src": "45042:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15587, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45042:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15590, "mutability": "mutable", "name": "p1", "nameLocation": "45065:2:49", "nodeType": "VariableDeclaration", "scope": 15609, "src": "45051:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15589, "name": "string", "nodeType": "ElementaryTypeName", "src": "45051:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15592, "mutability": "mutable", "name": "p2", "nameLocation": "45083:2:49", "nodeType": "VariableDeclaration", "scope": 15609, "src": "45069:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15591, "name": "string", "nodeType": "ElementaryTypeName", "src": "45069:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15594, "mutability": "mutable", "name": "p3", "nameLocation": "45092:2:49", "nodeType": "VariableDeclaration", "scope": 15609, "src": "45087:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15593, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45087:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "45041:54:49"}, "returnParameters": {"id": 15596, "nodeType": "ParameterList", "parameters": [], "src": "45110:0:49"}, "scope": 18025, "src": "45029:177:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15631, "nodeType": "Block", "src": "45293:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329", "id": 15623, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "45337:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5", "typeString": "literal_string \"log(bool,string,string,address)\""}, "value": "log(bool,string,string,address)"}, {"id": 15624, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15611, "src": "45372:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15625, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15613, "src": "45376:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15626, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15615, "src": "45380:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15627, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15617, "src": "45384:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5", "typeString": "literal_string \"log(bool,string,string,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15621, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "45313:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15622, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "45317:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "45313:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15628, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45313:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15620, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "45297:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15629, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45297:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15630, "nodeType": "ExpressionStatement", "src": "45297:91:49"}]}, "id": 15632, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "45218:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15618, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15611, "mutability": "mutable", "name": "p0", "nameLocation": "45227:2:49", "nodeType": "VariableDeclaration", "scope": 15632, "src": "45222:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15610, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45222:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15613, "mutability": "mutable", "name": "p1", "nameLocation": "45245:2:49", "nodeType": "VariableDeclaration", "scope": 15632, "src": "45231:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15612, "name": "string", "nodeType": "ElementaryTypeName", "src": "45231:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15615, "mutability": "mutable", "name": "p2", "nameLocation": "45263:2:49", "nodeType": "VariableDeclaration", "scope": 15632, "src": "45249:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15614, "name": "string", "nodeType": "ElementaryTypeName", "src": "45249:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15617, "mutability": "mutable", "name": "p3", "nameLocation": "45275:2:49", "nodeType": "VariableDeclaration", "scope": 15632, "src": "45267:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15616, "name": "address", "nodeType": "ElementaryTypeName", "src": "45267:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "45221:57:49"}, "returnParameters": {"id": 15619, "nodeType": "ParameterList", "parameters": [], "src": "45293:0:49"}, "scope": 18025, "src": "45209:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15654, "nodeType": "Block", "src": "45470:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7432353629", "id": 15646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "45514:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937", "typeString": "literal_string \"log(bool,string,bool,uint256)\""}, "value": "log(bool,string,bool,uint256)"}, {"id": 15647, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15634, "src": "45547:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15648, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15636, "src": "45551:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15649, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15638, "src": "45555:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15650, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15640, "src": "45559:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937", "typeString": "literal_string \"log(bool,string,bool,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15644, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "45490:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15645, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "45494:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "45490:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15651, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45490:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15643, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "45474:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15652, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45474:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15653, "nodeType": "ExpressionStatement", "src": "45474:89:49"}]}, "id": 15655, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "45404:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15641, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15634, "mutability": "mutable", "name": "p0", "nameLocation": "45413:2:49", "nodeType": "VariableDeclaration", "scope": 15655, "src": "45408:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15633, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45408:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15636, "mutability": "mutable", "name": "p1", "nameLocation": "45431:2:49", "nodeType": "VariableDeclaration", "scope": 15655, "src": "45417:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15635, "name": "string", "nodeType": "ElementaryTypeName", "src": "45417:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15638, "mutability": "mutable", "name": "p2", "nameLocation": "45440:2:49", "nodeType": "VariableDeclaration", "scope": 15655, "src": "45435:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15637, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45435:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15640, "mutability": "mutable", "name": "p3", "nameLocation": "45452:2:49", "nodeType": "VariableDeclaration", "scope": 15655, "src": "45444:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15639, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "45444:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "45407:48:49"}, "returnParameters": {"id": 15642, "nodeType": "ParameterList", "parameters": [], "src": "45470:0:49"}, "scope": 18025, "src": "45395:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15677, "nodeType": "Block", "src": "45651:96:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729", "id": 15669, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "45695:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468", "typeString": "literal_string \"log(bool,string,bool,string)\""}, "value": "log(bool,string,bool,string)"}, {"id": 15670, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15657, "src": "45727:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15671, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15659, "src": "45731:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15672, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15661, "src": "45735:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15673, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15663, "src": "45739:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468", "typeString": "literal_string \"log(bool,string,bool,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15667, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "45671:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15668, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "45675:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "45671:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15674, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45671:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15666, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "45655:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15675, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45655:88:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15676, "nodeType": "ExpressionStatement", "src": "45655:88:49"}]}, "id": 15678, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "45579:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15664, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15657, "mutability": "mutable", "name": "p0", "nameLocation": "45588:2:49", "nodeType": "VariableDeclaration", "scope": 15678, "src": "45583:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15656, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45583:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15659, "mutability": "mutable", "name": "p1", "nameLocation": "45606:2:49", "nodeType": "VariableDeclaration", "scope": 15678, "src": "45592:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15658, "name": "string", "nodeType": "ElementaryTypeName", "src": "45592:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15661, "mutability": "mutable", "name": "p2", "nameLocation": "45615:2:49", "nodeType": "VariableDeclaration", "scope": 15678, "src": "45610:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15660, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45610:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15663, "mutability": "mutable", "name": "p3", "nameLocation": "45633:2:49", "nodeType": "VariableDeclaration", "scope": 15678, "src": "45619:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15662, "name": "string", "nodeType": "ElementaryTypeName", "src": "45619:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "45582:54:49"}, "returnParameters": {"id": 15665, "nodeType": "ParameterList", "parameters": [], "src": "45651:0:49"}, "scope": 18025, "src": "45570:177:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15700, "nodeType": "Block", "src": "45822:94:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29", "id": 15692, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "45866:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f", "typeString": "literal_string \"log(bool,string,bool,bool)\""}, "value": "log(bool,string,bool,bool)"}, {"id": 15693, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15680, "src": "45896:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15694, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15682, "src": "45900:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15695, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15684, "src": "45904:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15696, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15686, "src": "45908:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f", "typeString": "literal_string \"log(bool,string,bool,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15690, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "45842:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15691, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "45846:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "45842:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15697, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45842:69:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15689, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "45826:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15698, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45826:86:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15699, "nodeType": "ExpressionStatement", "src": "45826:86:49"}]}, "id": 15701, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "45759:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15687, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15680, "mutability": "mutable", "name": "p0", "nameLocation": "45768:2:49", "nodeType": "VariableDeclaration", "scope": 15701, "src": "45763:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15679, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45763:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15682, "mutability": "mutable", "name": "p1", "nameLocation": "45786:2:49", "nodeType": "VariableDeclaration", "scope": 15701, "src": "45772:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15681, "name": "string", "nodeType": "ElementaryTypeName", "src": "45772:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15684, "mutability": "mutable", "name": "p2", "nameLocation": "45795:2:49", "nodeType": "VariableDeclaration", "scope": 15701, "src": "45790:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15683, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45790:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15686, "mutability": "mutable", "name": "p3", "nameLocation": "45804:2:49", "nodeType": "VariableDeclaration", "scope": 15701, "src": "45799:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15685, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45799:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "45762:45:49"}, "returnParameters": {"id": 15688, "nodeType": "ParameterList", "parameters": [], "src": "45822:0:49"}, "scope": 18025, "src": "45750:166:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15723, "nodeType": "Block", "src": "45994:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329", "id": 15715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "46038:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5", "typeString": "literal_string \"log(bool,string,bool,address)\""}, "value": "log(bool,string,bool,address)"}, {"id": 15716, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15703, "src": "46071:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15717, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15705, "src": "46075:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15718, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15707, "src": "46079:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15719, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15709, "src": "46083:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5", "typeString": "literal_string \"log(bool,string,bool,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15713, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "46014:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15714, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "46018:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "46014:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15720, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46014:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15712, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "45998:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15721, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "45998:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15722, "nodeType": "ExpressionStatement", "src": "45998:89:49"}]}, "id": 15724, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "45928:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15710, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15703, "mutability": "mutable", "name": "p0", "nameLocation": "45937:2:49", "nodeType": "VariableDeclaration", "scope": 15724, "src": "45932:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15702, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45932:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15705, "mutability": "mutable", "name": "p1", "nameLocation": "45955:2:49", "nodeType": "VariableDeclaration", "scope": 15724, "src": "45941:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15704, "name": "string", "nodeType": "ElementaryTypeName", "src": "45941:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15707, "mutability": "mutable", "name": "p2", "nameLocation": "45964:2:49", "nodeType": "VariableDeclaration", "scope": 15724, "src": "45959:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15706, "name": "bool", "nodeType": "ElementaryTypeName", "src": "45959:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15709, "mutability": "mutable", "name": "p3", "nameLocation": "45976:2:49", "nodeType": "VariableDeclaration", "scope": 15724, "src": "45968:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15708, "name": "address", "nodeType": "ElementaryTypeName", "src": "45968:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "45931:48:49"}, "returnParameters": {"id": 15711, "nodeType": "ParameterList", "parameters": [], "src": "45994:0:49"}, "scope": 18025, "src": "45919:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15746, "nodeType": "Block", "src": "46172:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7432353629", "id": 15738, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "46216:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218", "typeString": "literal_string \"log(bool,string,address,uint256)\""}, "value": "log(bool,string,address,uint256)"}, {"id": 15739, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15726, "src": "46252:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15740, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15728, "src": "46256:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15741, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15730, "src": "46260:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15742, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15732, "src": "46264:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218", "typeString": "literal_string \"log(bool,string,address,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15736, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "46192:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15737, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "46196:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "46192:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15743, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46192:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15735, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "46176:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46176:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15745, "nodeType": "ExpressionStatement", "src": "46176:92:49"}]}, "id": 15747, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "46103:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15733, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15726, "mutability": "mutable", "name": "p0", "nameLocation": "46112:2:49", "nodeType": "VariableDeclaration", "scope": 15747, "src": "46107:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15725, "name": "bool", "nodeType": "ElementaryTypeName", "src": "46107:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15728, "mutability": "mutable", "name": "p1", "nameLocation": "46130:2:49", "nodeType": "VariableDeclaration", "scope": 15747, "src": "46116:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15727, "name": "string", "nodeType": "ElementaryTypeName", "src": "46116:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15730, "mutability": "mutable", "name": "p2", "nameLocation": "46142:2:49", "nodeType": "VariableDeclaration", "scope": 15747, "src": "46134:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15729, "name": "address", "nodeType": "ElementaryTypeName", "src": "46134:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15732, "mutability": "mutable", "name": "p3", "nameLocation": "46154:2:49", "nodeType": "VariableDeclaration", "scope": 15747, "src": "46146:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15731, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "46146:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "46106:51:49"}, "returnParameters": {"id": 15734, "nodeType": "ParameterList", "parameters": [], "src": "46172:0:49"}, "scope": 18025, "src": "46094:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15769, "nodeType": "Block", "src": "46359:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729", "id": 15761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "46403:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7", "typeString": "literal_string \"log(bool,string,address,string)\""}, "value": "log(bool,string,address,string)"}, {"id": 15762, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15749, "src": "46438:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15763, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15751, "src": "46442:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15764, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15753, "src": "46446:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15765, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15755, "src": "46450:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7", "typeString": "literal_string \"log(bool,string,address,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15759, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "46379:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15760, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "46383:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "46379:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15766, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46379:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15758, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "46363:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15767, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46363:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15768, "nodeType": "ExpressionStatement", "src": "46363:91:49"}]}, "id": 15770, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "46284:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15756, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15749, "mutability": "mutable", "name": "p0", "nameLocation": "46293:2:49", "nodeType": "VariableDeclaration", "scope": 15770, "src": "46288:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15748, "name": "bool", "nodeType": "ElementaryTypeName", "src": "46288:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15751, "mutability": "mutable", "name": "p1", "nameLocation": "46311:2:49", "nodeType": "VariableDeclaration", "scope": 15770, "src": "46297:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15750, "name": "string", "nodeType": "ElementaryTypeName", "src": "46297:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15753, "mutability": "mutable", "name": "p2", "nameLocation": "46323:2:49", "nodeType": "VariableDeclaration", "scope": 15770, "src": "46315:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15752, "name": "address", "nodeType": "ElementaryTypeName", "src": "46315:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15755, "mutability": "mutable", "name": "p3", "nameLocation": "46341:2:49", "nodeType": "VariableDeclaration", "scope": 15770, "src": "46327:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15754, "name": "string", "nodeType": "ElementaryTypeName", "src": "46327:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "46287:57:49"}, "returnParameters": {"id": 15757, "nodeType": "ParameterList", "parameters": [], "src": "46359:0:49"}, "scope": 18025, "src": "46275:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15792, "nodeType": "Block", "src": "46536:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29", "id": 15784, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "46580:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d", "typeString": "literal_string \"log(bool,string,address,bool)\""}, "value": "log(bool,string,address,bool)"}, {"id": 15785, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15772, "src": "46613:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15786, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15774, "src": "46617:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15787, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15776, "src": "46621:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15788, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15778, "src": "46625:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d", "typeString": "literal_string \"log(bool,string,address,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15782, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "46556:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15783, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "46560:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "46556:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15789, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46556:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15781, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "46540:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15790, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46540:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15791, "nodeType": "ExpressionStatement", "src": "46540:89:49"}]}, "id": 15793, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "46470:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15779, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15772, "mutability": "mutable", "name": "p0", "nameLocation": "46479:2:49", "nodeType": "VariableDeclaration", "scope": 15793, "src": "46474:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15771, "name": "bool", "nodeType": "ElementaryTypeName", "src": "46474:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15774, "mutability": "mutable", "name": "p1", "nameLocation": "46497:2:49", "nodeType": "VariableDeclaration", "scope": 15793, "src": "46483:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15773, "name": "string", "nodeType": "ElementaryTypeName", "src": "46483:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15776, "mutability": "mutable", "name": "p2", "nameLocation": "46509:2:49", "nodeType": "VariableDeclaration", "scope": 15793, "src": "46501:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15775, "name": "address", "nodeType": "ElementaryTypeName", "src": "46501:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15778, "mutability": "mutable", "name": "p3", "nameLocation": "46518:2:49", "nodeType": "VariableDeclaration", "scope": 15793, "src": "46513:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15777, "name": "bool", "nodeType": "ElementaryTypeName", "src": "46513:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "46473:48:49"}, "returnParameters": {"id": 15780, "nodeType": "ParameterList", "parameters": [], "src": "46536:0:49"}, "scope": 18025, "src": "46461:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15815, "nodeType": "Block", "src": "46714:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329", "id": 15807, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "46758:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822", "typeString": "literal_string \"log(bool,string,address,address)\""}, "value": "log(bool,string,address,address)"}, {"id": 15808, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15795, "src": "46794:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15809, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15797, "src": "46798:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15810, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15799, "src": "46802:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 15811, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15801, "src": "46806:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822", "typeString": "literal_string \"log(bool,string,address,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15805, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "46734:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15806, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "46738:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "46734:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15812, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46734:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15804, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "46718:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15813, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46718:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15814, "nodeType": "ExpressionStatement", "src": "46718:92:49"}]}, "id": 15816, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "46645:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15802, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15795, "mutability": "mutable", "name": "p0", "nameLocation": "46654:2:49", "nodeType": "VariableDeclaration", "scope": 15816, "src": "46649:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15794, "name": "bool", "nodeType": "ElementaryTypeName", "src": "46649:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15797, "mutability": "mutable", "name": "p1", "nameLocation": "46672:2:49", "nodeType": "VariableDeclaration", "scope": 15816, "src": "46658:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15796, "name": "string", "nodeType": "ElementaryTypeName", "src": "46658:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15799, "mutability": "mutable", "name": "p2", "nameLocation": "46684:2:49", "nodeType": "VariableDeclaration", "scope": 15816, "src": "46676:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15798, "name": "address", "nodeType": "ElementaryTypeName", "src": "46676:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 15801, "mutability": "mutable", "name": "p3", "nameLocation": "46696:2:49", "nodeType": "VariableDeclaration", "scope": 15816, "src": "46688:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15800, "name": "address", "nodeType": "ElementaryTypeName", "src": "46688:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "46648:51:49"}, "returnParameters": {"id": 15803, "nodeType": "ParameterList", "parameters": [], "src": "46714:0:49"}, "scope": 18025, "src": "46636:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15838, "nodeType": "Block", "src": "46886:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e743235362c75696e7432353629", "id": 15830, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "46930:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34", "typeString": "literal_string \"log(bool,bool,uint256,uint256)\""}, "value": "log(bool,bool,uint256,uint256)"}, {"id": 15831, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15818, "src": "46964:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15832, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15820, "src": "46968:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15833, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15822, "src": "46972:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15834, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15824, "src": "46976:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34", "typeString": "literal_string \"log(bool,bool,uint256,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15828, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "46906:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15829, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "46910:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "46906:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15835, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46906:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15827, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "46890:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15836, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "46890:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15837, "nodeType": "ExpressionStatement", "src": "46890:90:49"}]}, "id": 15839, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "46826:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15825, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15818, "mutability": "mutable", "name": "p0", "nameLocation": "46835:2:49", "nodeType": "VariableDeclaration", "scope": 15839, "src": "46830:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15817, "name": "bool", "nodeType": "ElementaryTypeName", "src": "46830:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15820, "mutability": "mutable", "name": "p1", "nameLocation": "46844:2:49", "nodeType": "VariableDeclaration", "scope": 15839, "src": "46839:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15819, "name": "bool", "nodeType": "ElementaryTypeName", "src": "46839:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15822, "mutability": "mutable", "name": "p2", "nameLocation": "46856:2:49", "nodeType": "VariableDeclaration", "scope": 15839, "src": "46848:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15821, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "46848:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15824, "mutability": "mutable", "name": "p3", "nameLocation": "46868:2:49", "nodeType": "VariableDeclaration", "scope": 15839, "src": "46860:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15823, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "46860:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "46829:42:49"}, "returnParameters": {"id": 15826, "nodeType": "ParameterList", "parameters": [], "src": "46886:0:49"}, "scope": 18025, "src": "46817:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15861, "nodeType": "Block", "src": "47062:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e743235362c737472696e6729", "id": 15853, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "47106:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf", "typeString": "literal_string \"log(bool,bool,uint256,string)\""}, "value": "log(bool,bool,uint256,string)"}, {"id": 15854, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15841, "src": "47139:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15855, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15843, "src": "47143:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15856, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15845, "src": "47147:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15857, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15847, "src": "47151:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf", "typeString": "literal_string \"log(bool,bool,uint256,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15851, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "47082:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15852, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "47086:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "47082:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15858, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47082:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15850, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "47066:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15859, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47066:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15860, "nodeType": "ExpressionStatement", "src": "47066:89:49"}]}, "id": 15862, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "46996:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15848, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15841, "mutability": "mutable", "name": "p0", "nameLocation": "47005:2:49", "nodeType": "VariableDeclaration", "scope": 15862, "src": "47000:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15840, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47000:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15843, "mutability": "mutable", "name": "p1", "nameLocation": "47014:2:49", "nodeType": "VariableDeclaration", "scope": 15862, "src": "47009:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15842, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47009:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15845, "mutability": "mutable", "name": "p2", "nameLocation": "47026:2:49", "nodeType": "VariableDeclaration", "scope": 15862, "src": "47018:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15844, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "47018:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15847, "mutability": "mutable", "name": "p3", "nameLocation": "47044:2:49", "nodeType": "VariableDeclaration", "scope": 15862, "src": "47030:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15846, "name": "string", "nodeType": "ElementaryTypeName", "src": "47030:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "46999:48:49"}, "returnParameters": {"id": 15849, "nodeType": "ParameterList", "parameters": [], "src": "47062:0:49"}, "scope": 18025, "src": "46987:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15884, "nodeType": "Block", "src": "47228:95:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e743235362c626f6f6c29", "id": 15876, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "47272:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842", "typeString": "literal_string \"log(bool,bool,uint256,bool)\""}, "value": "log(bool,bool,uint256,bool)"}, {"id": 15877, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15864, "src": "47303:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15878, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15866, "src": "47307:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15879, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15868, "src": "47311:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15880, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15870, "src": "47315:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842", "typeString": "literal_string \"log(bool,bool,uint256,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15874, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "47248:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15875, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "47252:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "47248:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15881, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47248:70:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15873, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "47232:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15882, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47232:87:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15883, "nodeType": "ExpressionStatement", "src": "47232:87:49"}]}, "id": 15885, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "47171:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15871, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15864, "mutability": "mutable", "name": "p0", "nameLocation": "47180:2:49", "nodeType": "VariableDeclaration", "scope": 15885, "src": "47175:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15863, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47175:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15866, "mutability": "mutable", "name": "p1", "nameLocation": "47189:2:49", "nodeType": "VariableDeclaration", "scope": 15885, "src": "47184:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15865, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47184:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15868, "mutability": "mutable", "name": "p2", "nameLocation": "47201:2:49", "nodeType": "VariableDeclaration", "scope": 15885, "src": "47193:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15867, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "47193:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15870, "mutability": "mutable", "name": "p3", "nameLocation": "47210:2:49", "nodeType": "VariableDeclaration", "scope": 15885, "src": "47205:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15869, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47205:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "47174:39:49"}, "returnParameters": {"id": 15872, "nodeType": "ParameterList", "parameters": [], "src": "47228:0:49"}, "scope": 18025, "src": "47162:161:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15907, "nodeType": "Block", "src": "47395:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e743235362c6164647265737329", "id": 15899, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "47439:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9", "typeString": "literal_string \"log(bool,bool,uint256,address)\""}, "value": "log(bool,bool,uint256,address)"}, {"id": 15900, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15887, "src": "47473:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15901, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15889, "src": "47477:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15902, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15891, "src": "47481:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 15903, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15893, "src": "47485:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9", "typeString": "literal_string \"log(bool,bool,uint256,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15897, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "47415:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15898, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "47419:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "47415:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15904, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47415:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15896, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "47399:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15905, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47399:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15906, "nodeType": "ExpressionStatement", "src": "47399:90:49"}]}, "id": 15908, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "47335:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15894, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15887, "mutability": "mutable", "name": "p0", "nameLocation": "47344:2:49", "nodeType": "VariableDeclaration", "scope": 15908, "src": "47339:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15886, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47339:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15889, "mutability": "mutable", "name": "p1", "nameLocation": "47353:2:49", "nodeType": "VariableDeclaration", "scope": 15908, "src": "47348:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15888, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47348:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15891, "mutability": "mutable", "name": "p2", "nameLocation": "47365:2:49", "nodeType": "VariableDeclaration", "scope": 15908, "src": "47357:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15890, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "47357:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 15893, "mutability": "mutable", "name": "p3", "nameLocation": "47377:2:49", "nodeType": "VariableDeclaration", "scope": 15908, "src": "47369:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15892, "name": "address", "nodeType": "ElementaryTypeName", "src": "47369:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "47338:42:49"}, "returnParameters": {"id": 15895, "nodeType": "ParameterList", "parameters": [], "src": "47395:0:49"}, "scope": 18025, "src": "47326:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15930, "nodeType": "Block", "src": "47571:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7432353629", "id": 15922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "47615:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246", "typeString": "literal_string \"log(bool,bool,string,uint256)\""}, "value": "log(bool,bool,string,uint256)"}, {"id": 15923, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15910, "src": "47648:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15924, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15912, "src": "47652:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15925, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15914, "src": "47656:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15926, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15916, "src": "47660:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246", "typeString": "literal_string \"log(bool,bool,string,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 15920, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "47591:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15921, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "47595:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "47591:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15927, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47591:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15919, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "47575:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15928, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47575:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15929, "nodeType": "ExpressionStatement", "src": "47575:89:49"}]}, "id": 15931, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "47505:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15917, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15910, "mutability": "mutable", "name": "p0", "nameLocation": "47514:2:49", "nodeType": "VariableDeclaration", "scope": 15931, "src": "47509:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15909, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47509:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15912, "mutability": "mutable", "name": "p1", "nameLocation": "47523:2:49", "nodeType": "VariableDeclaration", "scope": 15931, "src": "47518:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15911, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47518:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15914, "mutability": "mutable", "name": "p2", "nameLocation": "47541:2:49", "nodeType": "VariableDeclaration", "scope": 15931, "src": "47527:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15913, "name": "string", "nodeType": "ElementaryTypeName", "src": "47527:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15916, "mutability": "mutable", "name": "p3", "nameLocation": "47553:2:49", "nodeType": "VariableDeclaration", "scope": 15931, "src": "47545:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 15915, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "47545:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "47508:48:49"}, "returnParameters": {"id": 15918, "nodeType": "ParameterList", "parameters": [], "src": "47571:0:49"}, "scope": 18025, "src": "47496:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15953, "nodeType": "Block", "src": "47752:96:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729", "id": 15945, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "47796:30:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf", "typeString": "literal_string \"log(bool,bool,string,string)\""}, "value": "log(bool,bool,string,string)"}, {"id": 15946, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15933, "src": "47828:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15947, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15935, "src": "47832:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15948, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15937, "src": "47836:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15949, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15939, "src": "47840:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf", "typeString": "literal_string \"log(bool,bool,string,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 15943, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "47772:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15944, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "47776:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "47772:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15950, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47772:71:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15942, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "47756:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15951, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47756:88:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15952, "nodeType": "ExpressionStatement", "src": "47756:88:49"}]}, "id": 15954, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "47680:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15940, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15933, "mutability": "mutable", "name": "p0", "nameLocation": "47689:2:49", "nodeType": "VariableDeclaration", "scope": 15954, "src": "47684:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15932, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47684:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15935, "mutability": "mutable", "name": "p1", "nameLocation": "47698:2:49", "nodeType": "VariableDeclaration", "scope": 15954, "src": "47693:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15934, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47693:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15937, "mutability": "mutable", "name": "p2", "nameLocation": "47716:2:49", "nodeType": "VariableDeclaration", "scope": 15954, "src": "47702:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15936, "name": "string", "nodeType": "ElementaryTypeName", "src": "47702:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15939, "mutability": "mutable", "name": "p3", "nameLocation": "47734:2:49", "nodeType": "VariableDeclaration", "scope": 15954, "src": "47720:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15938, "name": "string", "nodeType": "ElementaryTypeName", "src": "47720:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "47683:54:49"}, "returnParameters": {"id": 15941, "nodeType": "ParameterList", "parameters": [], "src": "47752:0:49"}, "scope": 18025, "src": "47671:177:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15976, "nodeType": "Block", "src": "47923:94:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29", "id": 15968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "47967:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02", "typeString": "literal_string \"log(bool,bool,string,bool)\""}, "value": "log(bool,bool,string,bool)"}, {"id": 15969, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15956, "src": "47997:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15970, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15958, "src": "48001:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15971, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15960, "src": "48005:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15972, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15962, "src": "48009:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02", "typeString": "literal_string \"log(bool,bool,string,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 15966, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "47943:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15967, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "47947:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "47943:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15973, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47943:69:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15965, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "47927:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15974, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "47927:86:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15975, "nodeType": "ExpressionStatement", "src": "47927:86:49"}]}, "id": 15977, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "47860:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15963, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15956, "mutability": "mutable", "name": "p0", "nameLocation": "47869:2:49", "nodeType": "VariableDeclaration", "scope": 15977, "src": "47864:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15955, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47864:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15958, "mutability": "mutable", "name": "p1", "nameLocation": "47878:2:49", "nodeType": "VariableDeclaration", "scope": 15977, "src": "47873:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15957, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47873:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15960, "mutability": "mutable", "name": "p2", "nameLocation": "47896:2:49", "nodeType": "VariableDeclaration", "scope": 15977, "src": "47882:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15959, "name": "string", "nodeType": "ElementaryTypeName", "src": "47882:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15962, "mutability": "mutable", "name": "p3", "nameLocation": "47905:2:49", "nodeType": "VariableDeclaration", "scope": 15977, "src": "47900:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15961, "name": "bool", "nodeType": "ElementaryTypeName", "src": "47900:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "47863:45:49"}, "returnParameters": {"id": 15964, "nodeType": "ParameterList", "parameters": [], "src": "47923:0:49"}, "scope": 18025, "src": "47851:166:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 15999, "nodeType": "Block", "src": "48095:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329", "id": 15991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "48139:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202", "typeString": "literal_string \"log(bool,bool,string,address)\""}, "value": "log(bool,bool,string,address)"}, {"id": 15992, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15979, "src": "48172:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15993, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15981, "src": "48176:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 15994, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15983, "src": "48180:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 15995, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15985, "src": "48184:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202", "typeString": "literal_string \"log(bool,bool,string,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 15989, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "48115:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 15990, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "48119:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "48115:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 15996, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48115:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 15988, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "48099:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 15997, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48099:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 15998, "nodeType": "ExpressionStatement", "src": "48099:89:49"}]}, "id": 16000, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "48029:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 15986, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 15979, "mutability": "mutable", "name": "p0", "nameLocation": "48038:2:49", "nodeType": "VariableDeclaration", "scope": 16000, "src": "48033:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15978, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48033:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15981, "mutability": "mutable", "name": "p1", "nameLocation": "48047:2:49", "nodeType": "VariableDeclaration", "scope": 16000, "src": "48042:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 15980, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48042:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 15983, "mutability": "mutable", "name": "p2", "nameLocation": "48065:2:49", "nodeType": "VariableDeclaration", "scope": 16000, "src": "48051:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 15982, "name": "string", "nodeType": "ElementaryTypeName", "src": "48051:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 15985, "mutability": "mutable", "name": "p3", "nameLocation": "48077:2:49", "nodeType": "VariableDeclaration", "scope": 16000, "src": "48069:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 15984, "name": "address", "nodeType": "ElementaryTypeName", "src": "48069:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "48032:48:49"}, "returnParameters": {"id": 15987, "nodeType": "ParameterList", "parameters": [], "src": "48095:0:49"}, "scope": 18025, "src": "48020:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16022, "nodeType": "Block", "src": "48261:95:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7432353629", "id": 16014, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "48305:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c", "typeString": "literal_string \"log(bool,bool,bool,uint256)\""}, "value": "log(bool,bool,bool,uint256)"}, {"id": 16015, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16002, "src": "48336:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16016, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16004, "src": "48340:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16017, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16006, "src": "48344:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16018, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16008, "src": "48348:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c", "typeString": "literal_string \"log(bool,bool,bool,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16012, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "48281:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16013, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "48285:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "48281:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16019, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48281:70:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16011, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "48265:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16020, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48265:87:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16021, "nodeType": "ExpressionStatement", "src": "48265:87:49"}]}, "id": 16023, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "48204:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16009, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16002, "mutability": "mutable", "name": "p0", "nameLocation": "48213:2:49", "nodeType": "VariableDeclaration", "scope": 16023, "src": "48208:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16001, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48208:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16004, "mutability": "mutable", "name": "p1", "nameLocation": "48222:2:49", "nodeType": "VariableDeclaration", "scope": 16023, "src": "48217:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16003, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48217:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16006, "mutability": "mutable", "name": "p2", "nameLocation": "48231:2:49", "nodeType": "VariableDeclaration", "scope": 16023, "src": "48226:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16005, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48226:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16008, "mutability": "mutable", "name": "p3", "nameLocation": "48243:2:49", "nodeType": "VariableDeclaration", "scope": 16023, "src": "48235:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16007, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "48235:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "48207:39:49"}, "returnParameters": {"id": 16010, "nodeType": "ParameterList", "parameters": [], "src": "48261:0:49"}, "scope": 18025, "src": "48195:161:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16045, "nodeType": "Block", "src": "48431:94:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729", "id": 16037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "48475:28:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15", "typeString": "literal_string \"log(bool,bool,bool,string)\""}, "value": "log(bool,bool,bool,string)"}, {"id": 16038, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16025, "src": "48505:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16039, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16027, "src": "48509:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16040, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16029, "src": "48513:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16041, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16031, "src": "48517:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15", "typeString": "literal_string \"log(bool,bool,bool,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16035, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "48451:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16036, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "48455:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "48451:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48451:69:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16034, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "48435:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16043, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48435:86:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16044, "nodeType": "ExpressionStatement", "src": "48435:86:49"}]}, "id": 16046, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "48368:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16032, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16025, "mutability": "mutable", "name": "p0", "nameLocation": "48377:2:49", "nodeType": "VariableDeclaration", "scope": 16046, "src": "48372:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16024, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48372:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16027, "mutability": "mutable", "name": "p1", "nameLocation": "48386:2:49", "nodeType": "VariableDeclaration", "scope": 16046, "src": "48381:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16026, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48381:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16029, "mutability": "mutable", "name": "p2", "nameLocation": "48395:2:49", "nodeType": "VariableDeclaration", "scope": 16046, "src": "48390:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16028, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48390:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16031, "mutability": "mutable", "name": "p3", "nameLocation": "48413:2:49", "nodeType": "VariableDeclaration", "scope": 16046, "src": "48399:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16030, "name": "string", "nodeType": "ElementaryTypeName", "src": "48399:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "48371:45:49"}, "returnParameters": {"id": 16033, "nodeType": "ParameterList", "parameters": [], "src": "48431:0:49"}, "scope": 18025, "src": "48359:166:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16068, "nodeType": "Block", "src": "48591:92:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29", "id": 16060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "48635:26:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f", "typeString": "literal_string \"log(bool,bool,bool,bool)\""}, "value": "log(bool,bool,bool,bool)"}, {"id": 16061, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16048, "src": "48663:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16062, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16050, "src": "48667:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16063, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16052, "src": "48671:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16064, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16054, "src": "48675:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f", "typeString": "literal_string \"log(bool,bool,bool,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16058, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "48611:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16059, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "48615:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "48611:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16065, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48611:67:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16057, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "48595:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16066, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48595:84:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16067, "nodeType": "ExpressionStatement", "src": "48595:84:49"}]}, "id": 16069, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "48537:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16055, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16048, "mutability": "mutable", "name": "p0", "nameLocation": "48546:2:49", "nodeType": "VariableDeclaration", "scope": 16069, "src": "48541:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16047, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48541:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16050, "mutability": "mutable", "name": "p1", "nameLocation": "48555:2:49", "nodeType": "VariableDeclaration", "scope": 16069, "src": "48550:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16049, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48550:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16052, "mutability": "mutable", "name": "p2", "nameLocation": "48564:2:49", "nodeType": "VariableDeclaration", "scope": 16069, "src": "48559:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16051, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48559:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16054, "mutability": "mutable", "name": "p3", "nameLocation": "48573:2:49", "nodeType": "VariableDeclaration", "scope": 16069, "src": "48568:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16053, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48568:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "48540:36:49"}, "returnParameters": {"id": 16056, "nodeType": "ParameterList", "parameters": [], "src": "48591:0:49"}, "scope": 18025, "src": "48528:155:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16091, "nodeType": "Block", "src": "48752:95:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329", "id": 16083, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "48796:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4", "typeString": "literal_string \"log(bool,bool,bool,address)\""}, "value": "log(bool,bool,bool,address)"}, {"id": 16084, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16071, "src": "48827:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16085, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16073, "src": "48831:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16086, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16075, "src": "48835:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16087, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16077, "src": "48839:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4", "typeString": "literal_string \"log(bool,bool,bool,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16081, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "48772:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16082, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "48776:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "48772:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16088, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48772:70:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16080, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "48756:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16089, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48756:87:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16090, "nodeType": "ExpressionStatement", "src": "48756:87:49"}]}, "id": 16092, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "48695:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16078, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16071, "mutability": "mutable", "name": "p0", "nameLocation": "48704:2:49", "nodeType": "VariableDeclaration", "scope": 16092, "src": "48699:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16070, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48699:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16073, "mutability": "mutable", "name": "p1", "nameLocation": "48713:2:49", "nodeType": "VariableDeclaration", "scope": 16092, "src": "48708:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16072, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48708:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16075, "mutability": "mutable", "name": "p2", "nameLocation": "48722:2:49", "nodeType": "VariableDeclaration", "scope": 16092, "src": "48717:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16074, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48717:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16077, "mutability": "mutable", "name": "p3", "nameLocation": "48734:2:49", "nodeType": "VariableDeclaration", "scope": 16092, "src": "48726:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16076, "name": "address", "nodeType": "ElementaryTypeName", "src": "48726:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "48698:39:49"}, "returnParameters": {"id": 16079, "nodeType": "ParameterList", "parameters": [], "src": "48752:0:49"}, "scope": 18025, "src": "48686:161:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16114, "nodeType": "Block", "src": "48919:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7432353629", "id": 16106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "48963:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1", "typeString": "literal_string \"log(bool,bool,address,uint256)\""}, "value": "log(bool,bool,address,uint256)"}, {"id": 16107, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16094, "src": "48997:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16108, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16096, "src": "49001:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16109, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16098, "src": "49005:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16110, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16100, "src": "49009:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1", "typeString": "literal_string \"log(bool,bool,address,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16104, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "48939:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16105, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "48943:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "48939:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16111, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48939:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16103, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "48923:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16112, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "48923:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16113, "nodeType": "ExpressionStatement", "src": "48923:90:49"}]}, "id": 16115, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "48859:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16101, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16094, "mutability": "mutable", "name": "p0", "nameLocation": "48868:2:49", "nodeType": "VariableDeclaration", "scope": 16115, "src": "48863:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16093, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48863:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16096, "mutability": "mutable", "name": "p1", "nameLocation": "48877:2:49", "nodeType": "VariableDeclaration", "scope": 16115, "src": "48872:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16095, "name": "bool", "nodeType": "ElementaryTypeName", "src": "48872:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16098, "mutability": "mutable", "name": "p2", "nameLocation": "48889:2:49", "nodeType": "VariableDeclaration", "scope": 16115, "src": "48881:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16097, "name": "address", "nodeType": "ElementaryTypeName", "src": "48881:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16100, "mutability": "mutable", "name": "p3", "nameLocation": "48901:2:49", "nodeType": "VariableDeclaration", "scope": 16115, "src": "48893:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16099, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "48893:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "48862:42:49"}, "returnParameters": {"id": 16102, "nodeType": "ParameterList", "parameters": [], "src": "48919:0:49"}, "scope": 18025, "src": "48850:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16137, "nodeType": "Block", "src": "49095:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729", "id": 16129, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "49139:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2", "typeString": "literal_string \"log(bool,bool,address,string)\""}, "value": "log(bool,bool,address,string)"}, {"id": 16130, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16117, "src": "49172:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16131, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16119, "src": "49176:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16132, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16121, "src": "49180:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16133, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16123, "src": "49184:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2", "typeString": "literal_string \"log(bool,bool,address,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16127, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "49115:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16128, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "49119:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "49115:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16134, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49115:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16126, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "49099:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16135, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49099:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16136, "nodeType": "ExpressionStatement", "src": "49099:89:49"}]}, "id": 16138, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "49029:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16124, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16117, "mutability": "mutable", "name": "p0", "nameLocation": "49038:2:49", "nodeType": "VariableDeclaration", "scope": 16138, "src": "49033:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16116, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49033:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16119, "mutability": "mutable", "name": "p1", "nameLocation": "49047:2:49", "nodeType": "VariableDeclaration", "scope": 16138, "src": "49042:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16118, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49042:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16121, "mutability": "mutable", "name": "p2", "nameLocation": "49059:2:49", "nodeType": "VariableDeclaration", "scope": 16138, "src": "49051:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16120, "name": "address", "nodeType": "ElementaryTypeName", "src": "49051:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16123, "mutability": "mutable", "name": "p3", "nameLocation": "49077:2:49", "nodeType": "VariableDeclaration", "scope": 16138, "src": "49063:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16122, "name": "string", "nodeType": "ElementaryTypeName", "src": "49063:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "49032:48:49"}, "returnParameters": {"id": 16125, "nodeType": "ParameterList", "parameters": [], "src": "49095:0:49"}, "scope": 18025, "src": "49020:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16160, "nodeType": "Block", "src": "49261:95:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29", "id": 16152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "49305:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf", "typeString": "literal_string \"log(bool,bool,address,bool)\""}, "value": "log(bool,bool,address,bool)"}, {"id": 16153, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16140, "src": "49336:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16154, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16142, "src": "49340:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16155, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16144, "src": "49344:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16156, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16146, "src": "49348:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf", "typeString": "literal_string \"log(bool,bool,address,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16150, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "49281:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16151, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "49285:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "49281:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16157, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49281:70:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16149, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "49265:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16158, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49265:87:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16159, "nodeType": "ExpressionStatement", "src": "49265:87:49"}]}, "id": 16161, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "49204:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16147, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16140, "mutability": "mutable", "name": "p0", "nameLocation": "49213:2:49", "nodeType": "VariableDeclaration", "scope": 16161, "src": "49208:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16139, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49208:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16142, "mutability": "mutable", "name": "p1", "nameLocation": "49222:2:49", "nodeType": "VariableDeclaration", "scope": 16161, "src": "49217:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16141, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49217:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16144, "mutability": "mutable", "name": "p2", "nameLocation": "49234:2:49", "nodeType": "VariableDeclaration", "scope": 16161, "src": "49226:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16143, "name": "address", "nodeType": "ElementaryTypeName", "src": "49226:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16146, "mutability": "mutable", "name": "p3", "nameLocation": "49243:2:49", "nodeType": "VariableDeclaration", "scope": 16161, "src": "49238:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16145, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49238:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "49207:39:49"}, "returnParameters": {"id": 16148, "nodeType": "ParameterList", "parameters": [], "src": "49261:0:49"}, "scope": 18025, "src": "49195:161:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16183, "nodeType": "Block", "src": "49428:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329", "id": 16175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "49472:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4", "typeString": "literal_string \"log(bool,bool,address,address)\""}, "value": "log(bool,bool,address,address)"}, {"id": 16176, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16163, "src": "49506:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16177, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16165, "src": "49510:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16178, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16167, "src": "49514:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16179, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16169, "src": "49518:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4", "typeString": "literal_string \"log(bool,bool,address,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16173, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "49448:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16174, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "49452:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "49448:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16180, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49448:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16172, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "49432:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16181, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49432:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16182, "nodeType": "ExpressionStatement", "src": "49432:90:49"}]}, "id": 16184, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "49368:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16170, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16163, "mutability": "mutable", "name": "p0", "nameLocation": "49377:2:49", "nodeType": "VariableDeclaration", "scope": 16184, "src": "49372:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16162, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49372:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16165, "mutability": "mutable", "name": "p1", "nameLocation": "49386:2:49", "nodeType": "VariableDeclaration", "scope": 16184, "src": "49381:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16164, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49381:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16167, "mutability": "mutable", "name": "p2", "nameLocation": "49398:2:49", "nodeType": "VariableDeclaration", "scope": 16184, "src": "49390:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16166, "name": "address", "nodeType": "ElementaryTypeName", "src": "49390:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16169, "mutability": "mutable", "name": "p3", "nameLocation": "49410:2:49", "nodeType": "VariableDeclaration", "scope": 16184, "src": "49402:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16168, "name": "address", "nodeType": "ElementaryTypeName", "src": "49402:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "49371:42:49"}, "returnParameters": {"id": 16171, "nodeType": "ParameterList", "parameters": [], "src": "49428:0:49"}, "scope": 18025, "src": "49359:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16206, "nodeType": "Block", "src": "49601:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e743235362c75696e7432353629", "id": 16198, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "49645:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e", "typeString": "literal_string \"log(bool,address,uint256,uint256)\""}, "value": "log(bool,address,uint256,uint256)"}, {"id": 16199, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16186, "src": "49682:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16200, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16188, "src": "49686:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16201, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16190, "src": "49690:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16202, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16192, "src": "49694:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e", "typeString": "literal_string \"log(bool,address,uint256,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16196, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "49621:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16197, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "49625:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "49621:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16203, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49621:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16195, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "49605:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16204, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49605:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16205, "nodeType": "ExpressionStatement", "src": "49605:93:49"}]}, "id": 16207, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "49538:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16193, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16186, "mutability": "mutable", "name": "p0", "nameLocation": "49547:2:49", "nodeType": "VariableDeclaration", "scope": 16207, "src": "49542:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16185, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49542:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16188, "mutability": "mutable", "name": "p1", "nameLocation": "49559:2:49", "nodeType": "VariableDeclaration", "scope": 16207, "src": "49551:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16187, "name": "address", "nodeType": "ElementaryTypeName", "src": "49551:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16190, "mutability": "mutable", "name": "p2", "nameLocation": "49571:2:49", "nodeType": "VariableDeclaration", "scope": 16207, "src": "49563:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16189, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "49563:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16192, "mutability": "mutable", "name": "p3", "nameLocation": "49583:2:49", "nodeType": "VariableDeclaration", "scope": 16207, "src": "49575:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16191, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "49575:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "49541:45:49"}, "returnParameters": {"id": 16194, "nodeType": "ParameterList", "parameters": [], "src": "49601:0:49"}, "scope": 18025, "src": "49529:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16229, "nodeType": "Block", "src": "49783:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e743235362c737472696e6729", "id": 16221, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "49827:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7", "typeString": "literal_string \"log(bool,address,uint256,string)\""}, "value": "log(bool,address,uint256,string)"}, {"id": 16222, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16209, "src": "49863:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16223, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16211, "src": "49867:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16224, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16213, "src": "49871:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16225, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16215, "src": "49875:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7", "typeString": "literal_string \"log(bool,address,uint256,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16219, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "49803:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16220, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "49807:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "49803:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16226, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49803:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16218, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "49787:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16227, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49787:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16228, "nodeType": "ExpressionStatement", "src": "49787:92:49"}]}, "id": 16230, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "49714:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16216, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16209, "mutability": "mutable", "name": "p0", "nameLocation": "49723:2:49", "nodeType": "VariableDeclaration", "scope": 16230, "src": "49718:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16208, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49718:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16211, "mutability": "mutable", "name": "p1", "nameLocation": "49735:2:49", "nodeType": "VariableDeclaration", "scope": 16230, "src": "49727:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16210, "name": "address", "nodeType": "ElementaryTypeName", "src": "49727:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16213, "mutability": "mutable", "name": "p2", "nameLocation": "49747:2:49", "nodeType": "VariableDeclaration", "scope": 16230, "src": "49739:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16212, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "49739:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16215, "mutability": "mutable", "name": "p3", "nameLocation": "49765:2:49", "nodeType": "VariableDeclaration", "scope": 16230, "src": "49751:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16214, "name": "string", "nodeType": "ElementaryTypeName", "src": "49751:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "49717:51:49"}, "returnParameters": {"id": 16217, "nodeType": "ParameterList", "parameters": [], "src": "49783:0:49"}, "scope": 18025, "src": "49705:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16252, "nodeType": "Block", "src": "49955:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e743235362c626f6f6c29", "id": 16244, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "49999:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958", "typeString": "literal_string \"log(bool,address,uint256,bool)\""}, "value": "log(bool,address,uint256,bool)"}, {"id": 16245, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16232, "src": "50033:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16246, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16234, "src": "50037:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16247, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16236, "src": "50041:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16248, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16238, "src": "50045:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958", "typeString": "literal_string \"log(bool,address,uint256,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16242, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "49975:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16243, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "49979:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "49975:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16249, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49975:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16241, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "49959:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16250, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "49959:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16251, "nodeType": "ExpressionStatement", "src": "49959:90:49"}]}, "id": 16253, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "49895:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16239, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16232, "mutability": "mutable", "name": "p0", "nameLocation": "49904:2:49", "nodeType": "VariableDeclaration", "scope": 16253, "src": "49899:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16231, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49899:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16234, "mutability": "mutable", "name": "p1", "nameLocation": "49916:2:49", "nodeType": "VariableDeclaration", "scope": 16253, "src": "49908:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16233, "name": "address", "nodeType": "ElementaryTypeName", "src": "49908:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16236, "mutability": "mutable", "name": "p2", "nameLocation": "49928:2:49", "nodeType": "VariableDeclaration", "scope": 16253, "src": "49920:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16235, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "49920:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16238, "mutability": "mutable", "name": "p3", "nameLocation": "49937:2:49", "nodeType": "VariableDeclaration", "scope": 16253, "src": "49932:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16237, "name": "bool", "nodeType": "ElementaryTypeName", "src": "49932:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "49898:42:49"}, "returnParameters": {"id": 16240, "nodeType": "ParameterList", "parameters": [], "src": "49955:0:49"}, "scope": 18025, "src": "49886:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16275, "nodeType": "Block", "src": "50128:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e743235362c6164647265737329", "id": 16267, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "50172:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd", "typeString": "literal_string \"log(bool,address,uint256,address)\""}, "value": "log(bool,address,uint256,address)"}, {"id": 16268, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16255, "src": "50209:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16269, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16257, "src": "50213:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16270, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16259, "src": "50217:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16271, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16261, "src": "50221:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd", "typeString": "literal_string \"log(bool,address,uint256,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16265, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "50148:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16266, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "50152:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "50148:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16272, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50148:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16264, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "50132:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16273, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50132:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16274, "nodeType": "ExpressionStatement", "src": "50132:93:49"}]}, "id": 16276, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "50065:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16262, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16255, "mutability": "mutable", "name": "p0", "nameLocation": "50074:2:49", "nodeType": "VariableDeclaration", "scope": 16276, "src": "50069:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16254, "name": "bool", "nodeType": "ElementaryTypeName", "src": "50069:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16257, "mutability": "mutable", "name": "p1", "nameLocation": "50086:2:49", "nodeType": "VariableDeclaration", "scope": 16276, "src": "50078:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16256, "name": "address", "nodeType": "ElementaryTypeName", "src": "50078:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16259, "mutability": "mutable", "name": "p2", "nameLocation": "50098:2:49", "nodeType": "VariableDeclaration", "scope": 16276, "src": "50090:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16258, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "50090:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16261, "mutability": "mutable", "name": "p3", "nameLocation": "50110:2:49", "nodeType": "VariableDeclaration", "scope": 16276, "src": "50102:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16260, "name": "address", "nodeType": "ElementaryTypeName", "src": "50102:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "50068:45:49"}, "returnParameters": {"id": 16263, "nodeType": "ParameterList", "parameters": [], "src": "50128:0:49"}, "scope": 18025, "src": "50056:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16298, "nodeType": "Block", "src": "50310:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7432353629", "id": 16290, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "50354:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d", "typeString": "literal_string \"log(bool,address,string,uint256)\""}, "value": "log(bool,address,string,uint256)"}, {"id": 16291, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16278, "src": "50390:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16292, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16280, "src": "50394:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16293, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16282, "src": "50398:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16294, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16284, "src": "50402:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d", "typeString": "literal_string \"log(bool,address,string,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16288, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "50330:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16289, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "50334:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "50330:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16295, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50330:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16287, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "50314:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16296, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50314:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16297, "nodeType": "ExpressionStatement", "src": "50314:92:49"}]}, "id": 16299, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "50241:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16285, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16278, "mutability": "mutable", "name": "p0", "nameLocation": "50250:2:49", "nodeType": "VariableDeclaration", "scope": 16299, "src": "50245:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16277, "name": "bool", "nodeType": "ElementaryTypeName", "src": "50245:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16280, "mutability": "mutable", "name": "p1", "nameLocation": "50262:2:49", "nodeType": "VariableDeclaration", "scope": 16299, "src": "50254:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16279, "name": "address", "nodeType": "ElementaryTypeName", "src": "50254:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16282, "mutability": "mutable", "name": "p2", "nameLocation": "50280:2:49", "nodeType": "VariableDeclaration", "scope": 16299, "src": "50266:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16281, "name": "string", "nodeType": "ElementaryTypeName", "src": "50266:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16284, "mutability": "mutable", "name": "p3", "nameLocation": "50292:2:49", "nodeType": "VariableDeclaration", "scope": 16299, "src": "50284:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16283, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "50284:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "50244:51:49"}, "returnParameters": {"id": 16286, "nodeType": "ParameterList", "parameters": [], "src": "50310:0:49"}, "scope": 18025, "src": "50232:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16321, "nodeType": "Block", "src": "50497:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729", "id": 16313, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "50541:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d", "typeString": "literal_string \"log(bool,address,string,string)\""}, "value": "log(bool,address,string,string)"}, {"id": 16314, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16301, "src": "50576:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16315, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16303, "src": "50580:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16316, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16305, "src": "50584:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16317, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16307, "src": "50588:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d", "typeString": "literal_string \"log(bool,address,string,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16311, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "50517:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16312, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "50521:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "50517:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16318, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50517:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16310, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "50501:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16319, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50501:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16320, "nodeType": "ExpressionStatement", "src": "50501:91:49"}]}, "id": 16322, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "50422:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16308, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16301, "mutability": "mutable", "name": "p0", "nameLocation": "50431:2:49", "nodeType": "VariableDeclaration", "scope": 16322, "src": "50426:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16300, "name": "bool", "nodeType": "ElementaryTypeName", "src": "50426:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16303, "mutability": "mutable", "name": "p1", "nameLocation": "50443:2:49", "nodeType": "VariableDeclaration", "scope": 16322, "src": "50435:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16302, "name": "address", "nodeType": "ElementaryTypeName", "src": "50435:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16305, "mutability": "mutable", "name": "p2", "nameLocation": "50461:2:49", "nodeType": "VariableDeclaration", "scope": 16322, "src": "50447:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16304, "name": "string", "nodeType": "ElementaryTypeName", "src": "50447:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16307, "mutability": "mutable", "name": "p3", "nameLocation": "50479:2:49", "nodeType": "VariableDeclaration", "scope": 16322, "src": "50465:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16306, "name": "string", "nodeType": "ElementaryTypeName", "src": "50465:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "50425:57:49"}, "returnParameters": {"id": 16309, "nodeType": "ParameterList", "parameters": [], "src": "50497:0:49"}, "scope": 18025, "src": "50413:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16344, "nodeType": "Block", "src": "50674:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29", "id": 16336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "50718:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc", "typeString": "literal_string \"log(bool,address,string,bool)\""}, "value": "log(bool,address,string,bool)"}, {"id": 16337, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16324, "src": "50751:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16338, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16326, "src": "50755:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16339, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16328, "src": "50759:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16340, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16330, "src": "50763:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc", "typeString": "literal_string \"log(bool,address,string,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16334, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "50694:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16335, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "50698:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "50694:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16341, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50694:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16333, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "50678:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16342, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50678:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16343, "nodeType": "ExpressionStatement", "src": "50678:89:49"}]}, "id": 16345, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "50608:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16331, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16324, "mutability": "mutable", "name": "p0", "nameLocation": "50617:2:49", "nodeType": "VariableDeclaration", "scope": 16345, "src": "50612:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16323, "name": "bool", "nodeType": "ElementaryTypeName", "src": "50612:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16326, "mutability": "mutable", "name": "p1", "nameLocation": "50629:2:49", "nodeType": "VariableDeclaration", "scope": 16345, "src": "50621:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16325, "name": "address", "nodeType": "ElementaryTypeName", "src": "50621:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16328, "mutability": "mutable", "name": "p2", "nameLocation": "50647:2:49", "nodeType": "VariableDeclaration", "scope": 16345, "src": "50633:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16327, "name": "string", "nodeType": "ElementaryTypeName", "src": "50633:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16330, "mutability": "mutable", "name": "p3", "nameLocation": "50656:2:49", "nodeType": "VariableDeclaration", "scope": 16345, "src": "50651:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16329, "name": "bool", "nodeType": "ElementaryTypeName", "src": "50651:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "50611:48:49"}, "returnParameters": {"id": 16332, "nodeType": "ParameterList", "parameters": [], "src": "50674:0:49"}, "scope": 18025, "src": "50599:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16367, "nodeType": "Block", "src": "50852:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329", "id": 16359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "50896:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654", "typeString": "literal_string \"log(bool,address,string,address)\""}, "value": "log(bool,address,string,address)"}, {"id": 16360, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16347, "src": "50932:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16361, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16349, "src": "50936:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16362, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16351, "src": "50940:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16363, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16353, "src": "50944:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654", "typeString": "literal_string \"log(bool,address,string,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16357, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "50872:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16358, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "50876:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "50872:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16364, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50872:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16356, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "50856:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16365, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "50856:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16366, "nodeType": "ExpressionStatement", "src": "50856:92:49"}]}, "id": 16368, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "50783:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16354, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16347, "mutability": "mutable", "name": "p0", "nameLocation": "50792:2:49", "nodeType": "VariableDeclaration", "scope": 16368, "src": "50787:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16346, "name": "bool", "nodeType": "ElementaryTypeName", "src": "50787:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16349, "mutability": "mutable", "name": "p1", "nameLocation": "50804:2:49", "nodeType": "VariableDeclaration", "scope": 16368, "src": "50796:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16348, "name": "address", "nodeType": "ElementaryTypeName", "src": "50796:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16351, "mutability": "mutable", "name": "p2", "nameLocation": "50822:2:49", "nodeType": "VariableDeclaration", "scope": 16368, "src": "50808:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16350, "name": "string", "nodeType": "ElementaryTypeName", "src": "50808:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16353, "mutability": "mutable", "name": "p3", "nameLocation": "50834:2:49", "nodeType": "VariableDeclaration", "scope": 16368, "src": "50826:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16352, "name": "address", "nodeType": "ElementaryTypeName", "src": "50826:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "50786:51:49"}, "returnParameters": {"id": 16355, "nodeType": "ParameterList", "parameters": [], "src": "50852:0:49"}, "scope": 18025, "src": "50774:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16390, "nodeType": "Block", "src": "51024:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7432353629", "id": 16382, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "51068:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059", "typeString": "literal_string \"log(bool,address,bool,uint256)\""}, "value": "log(bool,address,bool,uint256)"}, {"id": 16383, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16370, "src": "51102:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16384, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16372, "src": "51106:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16385, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16374, "src": "51110:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16386, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16376, "src": "51114:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059", "typeString": "literal_string \"log(bool,address,bool,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16380, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "51044:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16381, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "51048:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "51044:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16387, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51044:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16379, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "51028:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16388, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51028:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16389, "nodeType": "ExpressionStatement", "src": "51028:90:49"}]}, "id": 16391, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "50964:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16377, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16370, "mutability": "mutable", "name": "p0", "nameLocation": "50973:2:49", "nodeType": "VariableDeclaration", "scope": 16391, "src": "50968:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16369, "name": "bool", "nodeType": "ElementaryTypeName", "src": "50968:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16372, "mutability": "mutable", "name": "p1", "nameLocation": "50985:2:49", "nodeType": "VariableDeclaration", "scope": 16391, "src": "50977:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16371, "name": "address", "nodeType": "ElementaryTypeName", "src": "50977:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16374, "mutability": "mutable", "name": "p2", "nameLocation": "50994:2:49", "nodeType": "VariableDeclaration", "scope": 16391, "src": "50989:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16373, "name": "bool", "nodeType": "ElementaryTypeName", "src": "50989:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16376, "mutability": "mutable", "name": "p3", "nameLocation": "51006:2:49", "nodeType": "VariableDeclaration", "scope": 16391, "src": "50998:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16375, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "50998:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "50967:42:49"}, "returnParameters": {"id": 16378, "nodeType": "ParameterList", "parameters": [], "src": "51024:0:49"}, "scope": 18025, "src": "50955:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16413, "nodeType": "Block", "src": "51200:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729", "id": 16405, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "51244:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59", "typeString": "literal_string \"log(bool,address,bool,string)\""}, "value": "log(bool,address,bool,string)"}, {"id": 16406, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16393, "src": "51277:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16407, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16395, "src": "51281:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16408, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16397, "src": "51285:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16409, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16399, "src": "51289:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59", "typeString": "literal_string \"log(bool,address,bool,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16403, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "51220:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16404, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "51224:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "51220:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16410, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51220:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16402, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "51204:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16411, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51204:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16412, "nodeType": "ExpressionStatement", "src": "51204:89:49"}]}, "id": 16414, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "51134:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16400, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16393, "mutability": "mutable", "name": "p0", "nameLocation": "51143:2:49", "nodeType": "VariableDeclaration", "scope": 16414, "src": "51138:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16392, "name": "bool", "nodeType": "ElementaryTypeName", "src": "51138:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16395, "mutability": "mutable", "name": "p1", "nameLocation": "51155:2:49", "nodeType": "VariableDeclaration", "scope": 16414, "src": "51147:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16394, "name": "address", "nodeType": "ElementaryTypeName", "src": "51147:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16397, "mutability": "mutable", "name": "p2", "nameLocation": "51164:2:49", "nodeType": "VariableDeclaration", "scope": 16414, "src": "51159:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16396, "name": "bool", "nodeType": "ElementaryTypeName", "src": "51159:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16399, "mutability": "mutable", "name": "p3", "nameLocation": "51182:2:49", "nodeType": "VariableDeclaration", "scope": 16414, "src": "51168:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16398, "name": "string", "nodeType": "ElementaryTypeName", "src": "51168:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "51137:48:49"}, "returnParameters": {"id": 16401, "nodeType": "ParameterList", "parameters": [], "src": "51200:0:49"}, "scope": 18025, "src": "51125:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16436, "nodeType": "Block", "src": "51366:95:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29", "id": 16428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "51410:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577", "typeString": "literal_string \"log(bool,address,bool,bool)\""}, "value": "log(bool,address,bool,bool)"}, {"id": 16429, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16416, "src": "51441:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16430, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16418, "src": "51445:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16431, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16420, "src": "51449:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16432, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16422, "src": "51453:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577", "typeString": "literal_string \"log(bool,address,bool,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16426, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "51386:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16427, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "51390:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "51386:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16433, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51386:70:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16425, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "51370:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16434, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51370:87:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16435, "nodeType": "ExpressionStatement", "src": "51370:87:49"}]}, "id": 16437, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "51309:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16423, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16416, "mutability": "mutable", "name": "p0", "nameLocation": "51318:2:49", "nodeType": "VariableDeclaration", "scope": 16437, "src": "51313:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16415, "name": "bool", "nodeType": "ElementaryTypeName", "src": "51313:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16418, "mutability": "mutable", "name": "p1", "nameLocation": "51330:2:49", "nodeType": "VariableDeclaration", "scope": 16437, "src": "51322:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16417, "name": "address", "nodeType": "ElementaryTypeName", "src": "51322:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16420, "mutability": "mutable", "name": "p2", "nameLocation": "51339:2:49", "nodeType": "VariableDeclaration", "scope": 16437, "src": "51334:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16419, "name": "bool", "nodeType": "ElementaryTypeName", "src": "51334:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16422, "mutability": "mutable", "name": "p3", "nameLocation": "51348:2:49", "nodeType": "VariableDeclaration", "scope": 16437, "src": "51343:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16421, "name": "bool", "nodeType": "ElementaryTypeName", "src": "51343:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "51312:39:49"}, "returnParameters": {"id": 16424, "nodeType": "ParameterList", "parameters": [], "src": "51366:0:49"}, "scope": 18025, "src": "51300:161:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16459, "nodeType": "Block", "src": "51533:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329", "id": 16451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "51577:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870", "typeString": "literal_string \"log(bool,address,bool,address)\""}, "value": "log(bool,address,bool,address)"}, {"id": 16452, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16439, "src": "51611:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16453, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16441, "src": "51615:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16454, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16443, "src": "51619:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16455, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16445, "src": "51623:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870", "typeString": "literal_string \"log(bool,address,bool,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16449, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "51553:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16450, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "51557:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "51553:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16456, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51553:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16448, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "51537:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16457, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51537:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16458, "nodeType": "ExpressionStatement", "src": "51537:90:49"}]}, "id": 16460, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "51473:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16446, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16439, "mutability": "mutable", "name": "p0", "nameLocation": "51482:2:49", "nodeType": "VariableDeclaration", "scope": 16460, "src": "51477:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16438, "name": "bool", "nodeType": "ElementaryTypeName", "src": "51477:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16441, "mutability": "mutable", "name": "p1", "nameLocation": "51494:2:49", "nodeType": "VariableDeclaration", "scope": 16460, "src": "51486:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16440, "name": "address", "nodeType": "ElementaryTypeName", "src": "51486:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16443, "mutability": "mutable", "name": "p2", "nameLocation": "51503:2:49", "nodeType": "VariableDeclaration", "scope": 16460, "src": "51498:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16442, "name": "bool", "nodeType": "ElementaryTypeName", "src": "51498:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16445, "mutability": "mutable", "name": "p3", "nameLocation": "51515:2:49", "nodeType": "VariableDeclaration", "scope": 16460, "src": "51507:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16444, "name": "address", "nodeType": "ElementaryTypeName", "src": "51507:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "51476:42:49"}, "returnParameters": {"id": 16447, "nodeType": "ParameterList", "parameters": [], "src": "51533:0:49"}, "scope": 18025, "src": "51464:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16482, "nodeType": "Block", "src": "51706:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7432353629", "id": 16474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "51750:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8", "typeString": "literal_string \"log(bool,address,address,uint256)\""}, "value": "log(bool,address,address,uint256)"}, {"id": 16475, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16462, "src": "51787:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16476, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16464, "src": "51791:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16477, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16466, "src": "51795:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16478, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16468, "src": "51799:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8", "typeString": "literal_string \"log(bool,address,address,uint256)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16472, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "51726:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16473, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "51730:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "51726:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16479, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51726:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16471, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "51710:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16480, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51710:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16481, "nodeType": "ExpressionStatement", "src": "51710:93:49"}]}, "id": 16483, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "51643:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16469, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16462, "mutability": "mutable", "name": "p0", "nameLocation": "51652:2:49", "nodeType": "VariableDeclaration", "scope": 16483, "src": "51647:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16461, "name": "bool", "nodeType": "ElementaryTypeName", "src": "51647:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16464, "mutability": "mutable", "name": "p1", "nameLocation": "51664:2:49", "nodeType": "VariableDeclaration", "scope": 16483, "src": "51656:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16463, "name": "address", "nodeType": "ElementaryTypeName", "src": "51656:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16466, "mutability": "mutable", "name": "p2", "nameLocation": "51676:2:49", "nodeType": "VariableDeclaration", "scope": 16483, "src": "51668:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16465, "name": "address", "nodeType": "ElementaryTypeName", "src": "51668:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16468, "mutability": "mutable", "name": "p3", "nameLocation": "51688:2:49", "nodeType": "VariableDeclaration", "scope": 16483, "src": "51680:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16467, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "51680:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "51646:45:49"}, "returnParameters": {"id": 16470, "nodeType": "ParameterList", "parameters": [], "src": "51706:0:49"}, "scope": 18025, "src": "51634:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16505, "nodeType": "Block", "src": "51888:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729", "id": 16497, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "51932:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432", "typeString": "literal_string \"log(bool,address,address,string)\""}, "value": "log(bool,address,address,string)"}, {"id": 16498, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16485, "src": "51968:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16499, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16487, "src": "51972:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16500, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16489, "src": "51976:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16501, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16491, "src": "51980:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432", "typeString": "literal_string \"log(bool,address,address,string)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16495, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "51908:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16496, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "51912:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "51908:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16502, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51908:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16494, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "51892:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16503, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "51892:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16504, "nodeType": "ExpressionStatement", "src": "51892:92:49"}]}, "id": 16506, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "51819:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16492, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16485, "mutability": "mutable", "name": "p0", "nameLocation": "51828:2:49", "nodeType": "VariableDeclaration", "scope": 16506, "src": "51823:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16484, "name": "bool", "nodeType": "ElementaryTypeName", "src": "51823:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16487, "mutability": "mutable", "name": "p1", "nameLocation": "51840:2:49", "nodeType": "VariableDeclaration", "scope": 16506, "src": "51832:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16486, "name": "address", "nodeType": "ElementaryTypeName", "src": "51832:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16489, "mutability": "mutable", "name": "p2", "nameLocation": "51852:2:49", "nodeType": "VariableDeclaration", "scope": 16506, "src": "51844:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16488, "name": "address", "nodeType": "ElementaryTypeName", "src": "51844:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16491, "mutability": "mutable", "name": "p3", "nameLocation": "51870:2:49", "nodeType": "VariableDeclaration", "scope": 16506, "src": "51856:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16490, "name": "string", "nodeType": "ElementaryTypeName", "src": "51856:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "51822:51:49"}, "returnParameters": {"id": 16493, "nodeType": "ParameterList", "parameters": [], "src": "51888:0:49"}, "scope": 18025, "src": "51810:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16528, "nodeType": "Block", "src": "52060:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29", "id": 16520, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "52104:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e", "typeString": "literal_string \"log(bool,address,address,bool)\""}, "value": "log(bool,address,address,bool)"}, {"id": 16521, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16508, "src": "52138:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16522, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16510, "src": "52142:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16523, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16512, "src": "52146:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16524, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16514, "src": "52150:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e", "typeString": "literal_string \"log(bool,address,address,bool)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16518, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "52080:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16519, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "52084:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "52080:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16525, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52080:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16517, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "52064:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16526, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52064:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16527, "nodeType": "ExpressionStatement", "src": "52064:90:49"}]}, "id": 16529, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "52000:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16515, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16508, "mutability": "mutable", "name": "p0", "nameLocation": "52009:2:49", "nodeType": "VariableDeclaration", "scope": 16529, "src": "52004:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16507, "name": "bool", "nodeType": "ElementaryTypeName", "src": "52004:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16510, "mutability": "mutable", "name": "p1", "nameLocation": "52021:2:49", "nodeType": "VariableDeclaration", "scope": 16529, "src": "52013:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16509, "name": "address", "nodeType": "ElementaryTypeName", "src": "52013:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16512, "mutability": "mutable", "name": "p2", "nameLocation": "52033:2:49", "nodeType": "VariableDeclaration", "scope": 16529, "src": "52025:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16511, "name": "address", "nodeType": "ElementaryTypeName", "src": "52025:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16514, "mutability": "mutable", "name": "p3", "nameLocation": "52042:2:49", "nodeType": "VariableDeclaration", "scope": 16529, "src": "52037:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16513, "name": "bool", "nodeType": "ElementaryTypeName", "src": "52037:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "52003:42:49"}, "returnParameters": {"id": 16516, "nodeType": "ParameterList", "parameters": [], "src": "52060:0:49"}, "scope": 18025, "src": "51991:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16551, "nodeType": "Block", "src": "52233:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329", "id": 16543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "52277:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123", "typeString": "literal_string \"log(bool,address,address,address)\""}, "value": "log(bool,address,address,address)"}, {"id": 16544, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16531, "src": "52314:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16545, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16533, "src": "52318:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16546, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16535, "src": "52322:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16547, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16537, "src": "52326:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123", "typeString": "literal_string \"log(bool,address,address,address)\""}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16541, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "52253:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16542, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "52257:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "52253:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16548, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52253:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16540, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "52237:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16549, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52237:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16550, "nodeType": "ExpressionStatement", "src": "52237:93:49"}]}, "id": 16552, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "52170:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16538, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16531, "mutability": "mutable", "name": "p0", "nameLocation": "52179:2:49", "nodeType": "VariableDeclaration", "scope": 16552, "src": "52174:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16530, "name": "bool", "nodeType": "ElementaryTypeName", "src": "52174:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16533, "mutability": "mutable", "name": "p1", "nameLocation": "52191:2:49", "nodeType": "VariableDeclaration", "scope": 16552, "src": "52183:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16532, "name": "address", "nodeType": "ElementaryTypeName", "src": "52183:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16535, "mutability": "mutable", "name": "p2", "nameLocation": "52203:2:49", "nodeType": "VariableDeclaration", "scope": 16552, "src": "52195:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16534, "name": "address", "nodeType": "ElementaryTypeName", "src": "52195:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16537, "mutability": "mutable", "name": "p3", "nameLocation": "52215:2:49", "nodeType": "VariableDeclaration", "scope": 16552, "src": "52207:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16536, "name": "address", "nodeType": "ElementaryTypeName", "src": "52207:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "52173:45:49"}, "returnParameters": {"id": 16539, "nodeType": "ParameterList", "parameters": [], "src": "52233:0:49"}, "scope": 18025, "src": "52161:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16574, "nodeType": "Block", "src": "52412:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c75696e743235362c75696e7432353629", "id": 16566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "52456:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6", "typeString": "literal_string \"log(address,uint256,uint256,uint256)\""}, "value": "log(address,uint256,uint256,uint256)"}, {"id": 16567, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16554, "src": "52496:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16568, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16556, "src": "52500:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16569, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16558, "src": "52504:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16570, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16560, "src": "52508:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6", "typeString": "literal_string \"log(address,uint256,uint256,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16564, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "52432:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16565, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "52436:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "52432:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16571, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52432:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16563, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "52416:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16572, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52416:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16573, "nodeType": "ExpressionStatement", "src": "52416:96:49"}]}, "id": 16575, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "52346:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16561, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16554, "mutability": "mutable", "name": "p0", "nameLocation": "52358:2:49", "nodeType": "VariableDeclaration", "scope": 16575, "src": "52350:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16553, "name": "address", "nodeType": "ElementaryTypeName", "src": "52350:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16556, "mutability": "mutable", "name": "p1", "nameLocation": "52370:2:49", "nodeType": "VariableDeclaration", "scope": 16575, "src": "52362:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16555, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "52362:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16558, "mutability": "mutable", "name": "p2", "nameLocation": "52382:2:49", "nodeType": "VariableDeclaration", "scope": 16575, "src": "52374:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16557, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "52374:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16560, "mutability": "mutable", "name": "p3", "nameLocation": "52394:2:49", "nodeType": "VariableDeclaration", "scope": 16575, "src": "52386:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16559, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "52386:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "52349:48:49"}, "returnParameters": {"id": 16562, "nodeType": "ParameterList", "parameters": [], "src": "52412:0:49"}, "scope": 18025, "src": "52337:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16597, "nodeType": "Block", "src": "52600:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c75696e743235362c737472696e6729", "id": 16589, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "52644:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6", "typeString": "literal_string \"log(address,uint256,uint256,string)\""}, "value": "log(address,uint256,uint256,string)"}, {"id": 16590, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16577, "src": "52683:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16591, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16579, "src": "52687:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16592, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16581, "src": "52691:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16593, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16583, "src": "52695:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6", "typeString": "literal_string \"log(address,uint256,uint256,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16587, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "52620:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16588, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "52624:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "52620:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16594, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52620:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16586, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "52604:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16595, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52604:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16596, "nodeType": "ExpressionStatement", "src": "52604:95:49"}]}, "id": 16598, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "52528:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16584, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16577, "mutability": "mutable", "name": "p0", "nameLocation": "52540:2:49", "nodeType": "VariableDeclaration", "scope": 16598, "src": "52532:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16576, "name": "address", "nodeType": "ElementaryTypeName", "src": "52532:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16579, "mutability": "mutable", "name": "p1", "nameLocation": "52552:2:49", "nodeType": "VariableDeclaration", "scope": 16598, "src": "52544:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16578, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "52544:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16581, "mutability": "mutable", "name": "p2", "nameLocation": "52564:2:49", "nodeType": "VariableDeclaration", "scope": 16598, "src": "52556:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16580, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "52556:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16583, "mutability": "mutable", "name": "p3", "nameLocation": "52582:2:49", "nodeType": "VariableDeclaration", "scope": 16598, "src": "52568:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16582, "name": "string", "nodeType": "ElementaryTypeName", "src": "52568:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "52531:54:49"}, "returnParameters": {"id": 16585, "nodeType": "ParameterList", "parameters": [], "src": "52600:0:49"}, "scope": 18025, "src": "52519:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16620, "nodeType": "Block", "src": "52778:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c75696e743235362c626f6f6c29", "id": 16612, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "52822:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e", "typeString": "literal_string \"log(address,uint256,uint256,bool)\""}, "value": "log(address,uint256,uint256,bool)"}, {"id": 16613, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16600, "src": "52859:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16614, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16602, "src": "52863:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16615, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16604, "src": "52867:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16616, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16606, "src": "52871:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e", "typeString": "literal_string \"log(address,uint256,uint256,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16610, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "52798:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16611, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "52802:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "52798:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16617, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52798:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16609, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "52782:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16618, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52782:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16619, "nodeType": "ExpressionStatement", "src": "52782:93:49"}]}, "id": 16621, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "52715:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16607, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16600, "mutability": "mutable", "name": "p0", "nameLocation": "52727:2:49", "nodeType": "VariableDeclaration", "scope": 16621, "src": "52719:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16599, "name": "address", "nodeType": "ElementaryTypeName", "src": "52719:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16602, "mutability": "mutable", "name": "p1", "nameLocation": "52739:2:49", "nodeType": "VariableDeclaration", "scope": 16621, "src": "52731:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16601, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "52731:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16604, "mutability": "mutable", "name": "p2", "nameLocation": "52751:2:49", "nodeType": "VariableDeclaration", "scope": 16621, "src": "52743:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16603, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "52743:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16606, "mutability": "mutable", "name": "p3", "nameLocation": "52760:2:49", "nodeType": "VariableDeclaration", "scope": 16621, "src": "52755:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16605, "name": "bool", "nodeType": "ElementaryTypeName", "src": "52755:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "52718:45:49"}, "returnParameters": {"id": 16608, "nodeType": "ParameterList", "parameters": [], "src": "52778:0:49"}, "scope": 18025, "src": "52706:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16643, "nodeType": "Block", "src": "52957:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c75696e743235362c6164647265737329", "id": 16635, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "53001:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390", "typeString": "literal_string \"log(address,uint256,uint256,address)\""}, "value": "log(address,uint256,uint256,address)"}, {"id": 16636, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16623, "src": "53041:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16637, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16625, "src": "53045:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16638, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16627, "src": "53049:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16639, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16629, "src": "53053:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390", "typeString": "literal_string \"log(address,uint256,uint256,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16633, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "52977:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16634, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "52981:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "52977:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16640, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52977:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16632, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "52961:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16641, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "52961:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16642, "nodeType": "ExpressionStatement", "src": "52961:96:49"}]}, "id": 16644, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "52891:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16630, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16623, "mutability": "mutable", "name": "p0", "nameLocation": "52903:2:49", "nodeType": "VariableDeclaration", "scope": 16644, "src": "52895:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16622, "name": "address", "nodeType": "ElementaryTypeName", "src": "52895:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16625, "mutability": "mutable", "name": "p1", "nameLocation": "52915:2:49", "nodeType": "VariableDeclaration", "scope": 16644, "src": "52907:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16624, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "52907:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16627, "mutability": "mutable", "name": "p2", "nameLocation": "52927:2:49", "nodeType": "VariableDeclaration", "scope": 16644, "src": "52919:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16626, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "52919:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16629, "mutability": "mutable", "name": "p3", "nameLocation": "52939:2:49", "nodeType": "VariableDeclaration", "scope": 16644, "src": "52931:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16628, "name": "address", "nodeType": "ElementaryTypeName", "src": "52931:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "52894:48:49"}, "returnParameters": {"id": 16631, "nodeType": "ParameterList", "parameters": [], "src": "52957:0:49"}, "scope": 18025, "src": "52882:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16666, "nodeType": "Block", "src": "53145:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c737472696e672c75696e7432353629", "id": 16658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "53189:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054", "typeString": "literal_string \"log(address,uint256,string,uint256)\""}, "value": "log(address,uint256,string,uint256)"}, {"id": 16659, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16646, "src": "53228:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16660, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16648, "src": "53232:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16661, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16650, "src": "53236:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16662, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16652, "src": "53240:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054", "typeString": "literal_string \"log(address,uint256,string,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16656, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "53165:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16657, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "53169:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "53165:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16663, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53165:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16655, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "53149:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16664, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53149:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16665, "nodeType": "ExpressionStatement", "src": "53149:95:49"}]}, "id": 16667, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "53073:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16653, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16646, "mutability": "mutable", "name": "p0", "nameLocation": "53085:2:49", "nodeType": "VariableDeclaration", "scope": 16667, "src": "53077:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16645, "name": "address", "nodeType": "ElementaryTypeName", "src": "53077:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16648, "mutability": "mutable", "name": "p1", "nameLocation": "53097:2:49", "nodeType": "VariableDeclaration", "scope": 16667, "src": "53089:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16647, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "53089:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16650, "mutability": "mutable", "name": "p2", "nameLocation": "53115:2:49", "nodeType": "VariableDeclaration", "scope": 16667, "src": "53101:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16649, "name": "string", "nodeType": "ElementaryTypeName", "src": "53101:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16652, "mutability": "mutable", "name": "p3", "nameLocation": "53127:2:49", "nodeType": "VariableDeclaration", "scope": 16667, "src": "53119:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16651, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "53119:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "53076:54:49"}, "returnParameters": {"id": 16654, "nodeType": "ParameterList", "parameters": [], "src": "53145:0:49"}, "scope": 18025, "src": "53064:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16689, "nodeType": "Block", "src": "53338:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c737472696e672c737472696e6729", "id": 16681, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "53382:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9", "typeString": "literal_string \"log(address,uint256,string,string)\""}, "value": "log(address,uint256,string,string)"}, {"id": 16682, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16669, "src": "53420:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16683, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16671, "src": "53424:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16684, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16673, "src": "53428:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16685, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16675, "src": "53432:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9", "typeString": "literal_string \"log(address,uint256,string,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16679, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "53358:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16680, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "53362:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "53358:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16686, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53358:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16678, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "53342:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16687, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53342:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16688, "nodeType": "ExpressionStatement", "src": "53342:94:49"}]}, "id": 16690, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "53260:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16676, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16669, "mutability": "mutable", "name": "p0", "nameLocation": "53272:2:49", "nodeType": "VariableDeclaration", "scope": 16690, "src": "53264:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16668, "name": "address", "nodeType": "ElementaryTypeName", "src": "53264:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16671, "mutability": "mutable", "name": "p1", "nameLocation": "53284:2:49", "nodeType": "VariableDeclaration", "scope": 16690, "src": "53276:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16670, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "53276:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16673, "mutability": "mutable", "name": "p2", "nameLocation": "53302:2:49", "nodeType": "VariableDeclaration", "scope": 16690, "src": "53288:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16672, "name": "string", "nodeType": "ElementaryTypeName", "src": "53288:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16675, "mutability": "mutable", "name": "p3", "nameLocation": "53320:2:49", "nodeType": "VariableDeclaration", "scope": 16690, "src": "53306:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16674, "name": "string", "nodeType": "ElementaryTypeName", "src": "53306:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "53263:60:49"}, "returnParameters": {"id": 16677, "nodeType": "ParameterList", "parameters": [], "src": "53338:0:49"}, "scope": 18025, "src": "53251:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16712, "nodeType": "Block", "src": "53521:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c737472696e672c626f6f6c29", "id": 16704, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "53565:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184", "typeString": "literal_string \"log(address,uint256,string,bool)\""}, "value": "log(address,uint256,string,bool)"}, {"id": 16705, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16692, "src": "53601:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16706, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16694, "src": "53605:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16707, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16696, "src": "53609:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16708, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16698, "src": "53613:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184", "typeString": "literal_string \"log(address,uint256,string,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16702, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "53541:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "53545:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "53541:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16709, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53541:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16701, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "53525:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16710, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53525:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16711, "nodeType": "ExpressionStatement", "src": "53525:92:49"}]}, "id": 16713, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "53452:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16699, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16692, "mutability": "mutable", "name": "p0", "nameLocation": "53464:2:49", "nodeType": "VariableDeclaration", "scope": 16713, "src": "53456:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16691, "name": "address", "nodeType": "ElementaryTypeName", "src": "53456:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16694, "mutability": "mutable", "name": "p1", "nameLocation": "53476:2:49", "nodeType": "VariableDeclaration", "scope": 16713, "src": "53468:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16693, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "53468:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16696, "mutability": "mutable", "name": "p2", "nameLocation": "53494:2:49", "nodeType": "VariableDeclaration", "scope": 16713, "src": "53480:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16695, "name": "string", "nodeType": "ElementaryTypeName", "src": "53480:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16698, "mutability": "mutable", "name": "p3", "nameLocation": "53503:2:49", "nodeType": "VariableDeclaration", "scope": 16713, "src": "53498:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16697, "name": "bool", "nodeType": "ElementaryTypeName", "src": "53498:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "53455:51:49"}, "returnParameters": {"id": 16700, "nodeType": "ParameterList", "parameters": [], "src": "53521:0:49"}, "scope": 18025, "src": "53443:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16735, "nodeType": "Block", "src": "53705:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c737472696e672c6164647265737329", "id": 16727, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "53749:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a", "typeString": "literal_string \"log(address,uint256,string,address)\""}, "value": "log(address,uint256,string,address)"}, {"id": 16728, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16715, "src": "53788:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16729, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16717, "src": "53792:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16730, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16719, "src": "53796:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16731, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16721, "src": "53800:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a", "typeString": "literal_string \"log(address,uint256,string,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16725, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "53725:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16726, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "53729:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "53725:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16732, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53725:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16724, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "53709:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16733, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53709:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16734, "nodeType": "ExpressionStatement", "src": "53709:95:49"}]}, "id": 16736, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "53633:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16722, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16715, "mutability": "mutable", "name": "p0", "nameLocation": "53645:2:49", "nodeType": "VariableDeclaration", "scope": 16736, "src": "53637:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16714, "name": "address", "nodeType": "ElementaryTypeName", "src": "53637:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16717, "mutability": "mutable", "name": "p1", "nameLocation": "53657:2:49", "nodeType": "VariableDeclaration", "scope": 16736, "src": "53649:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16716, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "53649:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16719, "mutability": "mutable", "name": "p2", "nameLocation": "53675:2:49", "nodeType": "VariableDeclaration", "scope": 16736, "src": "53661:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16718, "name": "string", "nodeType": "ElementaryTypeName", "src": "53661:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16721, "mutability": "mutable", "name": "p3", "nameLocation": "53687:2:49", "nodeType": "VariableDeclaration", "scope": 16736, "src": "53679:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16720, "name": "address", "nodeType": "ElementaryTypeName", "src": "53679:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "53636:54:49"}, "returnParameters": {"id": 16723, "nodeType": "ParameterList", "parameters": [], "src": "53705:0:49"}, "scope": 18025, "src": "53624:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16758, "nodeType": "Block", "src": "53883:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c626f6f6c2c75696e7432353629", "id": 16750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "53927:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e", "typeString": "literal_string \"log(address,uint256,bool,uint256)\""}, "value": "log(address,uint256,bool,uint256)"}, {"id": 16751, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16738, "src": "53964:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16752, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16740, "src": "53968:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16753, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16742, "src": "53972:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16754, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16744, "src": "53976:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e", "typeString": "literal_string \"log(address,uint256,bool,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16748, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "53903:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16749, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "53907:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "53903:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16755, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53903:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16747, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "53887:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16756, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "53887:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16757, "nodeType": "ExpressionStatement", "src": "53887:93:49"}]}, "id": 16759, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "53820:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16745, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16738, "mutability": "mutable", "name": "p0", "nameLocation": "53832:2:49", "nodeType": "VariableDeclaration", "scope": 16759, "src": "53824:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16737, "name": "address", "nodeType": "ElementaryTypeName", "src": "53824:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16740, "mutability": "mutable", "name": "p1", "nameLocation": "53844:2:49", "nodeType": "VariableDeclaration", "scope": 16759, "src": "53836:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16739, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "53836:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16742, "mutability": "mutable", "name": "p2", "nameLocation": "53853:2:49", "nodeType": "VariableDeclaration", "scope": 16759, "src": "53848:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16741, "name": "bool", "nodeType": "ElementaryTypeName", "src": "53848:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16744, "mutability": "mutable", "name": "p3", "nameLocation": "53865:2:49", "nodeType": "VariableDeclaration", "scope": 16759, "src": "53857:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16743, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "53857:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "53823:45:49"}, "returnParameters": {"id": 16746, "nodeType": "ParameterList", "parameters": [], "src": "53883:0:49"}, "scope": 18025, "src": "53811:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16781, "nodeType": "Block", "src": "54065:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c626f6f6c2c737472696e6729", "id": 16773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "54109:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b", "typeString": "literal_string \"log(address,uint256,bool,string)\""}, "value": "log(address,uint256,bool,string)"}, {"id": 16774, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16761, "src": "54145:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16775, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16763, "src": "54149:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16776, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16765, "src": "54153:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16777, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16767, "src": "54157:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b", "typeString": "literal_string \"log(address,uint256,bool,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16771, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "54085:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16772, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "54089:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "54085:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16778, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54085:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16770, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "54069:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16779, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54069:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16780, "nodeType": "ExpressionStatement", "src": "54069:92:49"}]}, "id": 16782, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "53996:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16768, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16761, "mutability": "mutable", "name": "p0", "nameLocation": "54008:2:49", "nodeType": "VariableDeclaration", "scope": 16782, "src": "54000:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16760, "name": "address", "nodeType": "ElementaryTypeName", "src": "54000:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16763, "mutability": "mutable", "name": "p1", "nameLocation": "54020:2:49", "nodeType": "VariableDeclaration", "scope": 16782, "src": "54012:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16762, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "54012:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16765, "mutability": "mutable", "name": "p2", "nameLocation": "54029:2:49", "nodeType": "VariableDeclaration", "scope": 16782, "src": "54024:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16764, "name": "bool", "nodeType": "ElementaryTypeName", "src": "54024:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16767, "mutability": "mutable", "name": "p3", "nameLocation": "54047:2:49", "nodeType": "VariableDeclaration", "scope": 16782, "src": "54033:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16766, "name": "string", "nodeType": "ElementaryTypeName", "src": "54033:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "53999:51:49"}, "returnParameters": {"id": 16769, "nodeType": "ParameterList", "parameters": [], "src": "54065:0:49"}, "scope": 18025, "src": "53987:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16804, "nodeType": "Block", "src": "54237:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c626f6f6c2c626f6f6c29", "id": 16796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "54281:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7", "typeString": "literal_string \"log(address,uint256,bool,bool)\""}, "value": "log(address,uint256,bool,bool)"}, {"id": 16797, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16784, "src": "54315:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16798, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16786, "src": "54319:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16799, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16788, "src": "54323:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16800, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16790, "src": "54327:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7", "typeString": "literal_string \"log(address,uint256,bool,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16794, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "54257:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16795, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "54261:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "54257:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16801, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54257:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16793, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "54241:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16802, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54241:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16803, "nodeType": "ExpressionStatement", "src": "54241:90:49"}]}, "id": 16805, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "54177:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16791, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16784, "mutability": "mutable", "name": "p0", "nameLocation": "54189:2:49", "nodeType": "VariableDeclaration", "scope": 16805, "src": "54181:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16783, "name": "address", "nodeType": "ElementaryTypeName", "src": "54181:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16786, "mutability": "mutable", "name": "p1", "nameLocation": "54201:2:49", "nodeType": "VariableDeclaration", "scope": 16805, "src": "54193:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16785, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "54193:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16788, "mutability": "mutable", "name": "p2", "nameLocation": "54210:2:49", "nodeType": "VariableDeclaration", "scope": 16805, "src": "54205:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16787, "name": "bool", "nodeType": "ElementaryTypeName", "src": "54205:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16790, "mutability": "mutable", "name": "p3", "nameLocation": "54219:2:49", "nodeType": "VariableDeclaration", "scope": 16805, "src": "54214:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16789, "name": "bool", "nodeType": "ElementaryTypeName", "src": "54214:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "54180:42:49"}, "returnParameters": {"id": 16792, "nodeType": "ParameterList", "parameters": [], "src": "54237:0:49"}, "scope": 18025, "src": "54168:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16827, "nodeType": "Block", "src": "54410:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c626f6f6c2c6164647265737329", "id": 16819, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "54454:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290", "typeString": "literal_string \"log(address,uint256,bool,address)\""}, "value": "log(address,uint256,bool,address)"}, {"id": 16820, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16807, "src": "54491:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16821, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16809, "src": "54495:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16822, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16811, "src": "54499:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 16823, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16813, "src": "54503:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290", "typeString": "literal_string \"log(address,uint256,bool,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16817, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "54430:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16818, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "54434:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "54430:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16824, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54430:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16816, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "54414:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16825, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54414:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16826, "nodeType": "ExpressionStatement", "src": "54414:93:49"}]}, "id": 16828, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "54347:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16814, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16807, "mutability": "mutable", "name": "p0", "nameLocation": "54359:2:49", "nodeType": "VariableDeclaration", "scope": 16828, "src": "54351:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16806, "name": "address", "nodeType": "ElementaryTypeName", "src": "54351:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16809, "mutability": "mutable", "name": "p1", "nameLocation": "54371:2:49", "nodeType": "VariableDeclaration", "scope": 16828, "src": "54363:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16808, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "54363:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16811, "mutability": "mutable", "name": "p2", "nameLocation": "54380:2:49", "nodeType": "VariableDeclaration", "scope": 16828, "src": "54375:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16810, "name": "bool", "nodeType": "ElementaryTypeName", "src": "54375:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 16813, "mutability": "mutable", "name": "p3", "nameLocation": "54392:2:49", "nodeType": "VariableDeclaration", "scope": 16828, "src": "54384:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16812, "name": "address", "nodeType": "ElementaryTypeName", "src": "54384:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "54350:45:49"}, "returnParameters": {"id": 16815, "nodeType": "ParameterList", "parameters": [], "src": "54410:0:49"}, "scope": 18025, "src": "54338:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16850, "nodeType": "Block", "src": "54589:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c616464726573732c75696e7432353629", "id": 16842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "54633:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6", "typeString": "literal_string \"log(address,uint256,address,uint256)\""}, "value": "log(address,uint256,address,uint256)"}, {"id": 16843, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16830, "src": "54673:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16844, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16832, "src": "54677:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16845, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16834, "src": "54681:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16846, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16836, "src": "54685:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6", "typeString": "literal_string \"log(address,uint256,address,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16840, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "54609:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16841, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "54613:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "54609:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16847, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54609:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16839, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "54593:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16848, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54593:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16849, "nodeType": "ExpressionStatement", "src": "54593:96:49"}]}, "id": 16851, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "54523:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16837, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16830, "mutability": "mutable", "name": "p0", "nameLocation": "54535:2:49", "nodeType": "VariableDeclaration", "scope": 16851, "src": "54527:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16829, "name": "address", "nodeType": "ElementaryTypeName", "src": "54527:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16832, "mutability": "mutable", "name": "p1", "nameLocation": "54547:2:49", "nodeType": "VariableDeclaration", "scope": 16851, "src": "54539:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16831, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "54539:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16834, "mutability": "mutable", "name": "p2", "nameLocation": "54559:2:49", "nodeType": "VariableDeclaration", "scope": 16851, "src": "54551:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16833, "name": "address", "nodeType": "ElementaryTypeName", "src": "54551:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16836, "mutability": "mutable", "name": "p3", "nameLocation": "54571:2:49", "nodeType": "VariableDeclaration", "scope": 16851, "src": "54563:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16835, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "54563:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "54526:48:49"}, "returnParameters": {"id": 16838, "nodeType": "ParameterList", "parameters": [], "src": "54589:0:49"}, "scope": 18025, "src": "54514:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16873, "nodeType": "Block", "src": "54777:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c616464726573732c737472696e6729", "id": 16865, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "54821:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb", "typeString": "literal_string \"log(address,uint256,address,string)\""}, "value": "log(address,uint256,address,string)"}, {"id": 16866, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16853, "src": "54860:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16867, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16855, "src": "54864:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16868, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16857, "src": "54868:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16869, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16859, "src": "54872:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb", "typeString": "literal_string \"log(address,uint256,address,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16863, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "54797:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16864, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "54801:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "54797:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16870, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54797:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16862, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "54781:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16871, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54781:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16872, "nodeType": "ExpressionStatement", "src": "54781:95:49"}]}, "id": 16874, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "54705:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16860, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16853, "mutability": "mutable", "name": "p0", "nameLocation": "54717:2:49", "nodeType": "VariableDeclaration", "scope": 16874, "src": "54709:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16852, "name": "address", "nodeType": "ElementaryTypeName", "src": "54709:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16855, "mutability": "mutable", "name": "p1", "nameLocation": "54729:2:49", "nodeType": "VariableDeclaration", "scope": 16874, "src": "54721:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16854, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "54721:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16857, "mutability": "mutable", "name": "p2", "nameLocation": "54741:2:49", "nodeType": "VariableDeclaration", "scope": 16874, "src": "54733:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16856, "name": "address", "nodeType": "ElementaryTypeName", "src": "54733:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16859, "mutability": "mutable", "name": "p3", "nameLocation": "54759:2:49", "nodeType": "VariableDeclaration", "scope": 16874, "src": "54745:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16858, "name": "string", "nodeType": "ElementaryTypeName", "src": "54745:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "54708:54:49"}, "returnParameters": {"id": 16861, "nodeType": "ParameterList", "parameters": [], "src": "54777:0:49"}, "scope": 18025, "src": "54696:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16896, "nodeType": "Block", "src": "54955:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c616464726573732c626f6f6c29", "id": 16888, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "54999:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322", "typeString": "literal_string \"log(address,uint256,address,bool)\""}, "value": "log(address,uint256,address,bool)"}, {"id": 16889, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16876, "src": "55036:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16890, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16878, "src": "55040:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16891, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16880, "src": "55044:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16892, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16882, "src": "55048:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322", "typeString": "literal_string \"log(address,uint256,address,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16886, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "54975:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16887, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "54979:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "54975:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16893, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54975:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16885, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "54959:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16894, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "54959:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16895, "nodeType": "ExpressionStatement", "src": "54959:93:49"}]}, "id": 16897, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "54892:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16883, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16876, "mutability": "mutable", "name": "p0", "nameLocation": "54904:2:49", "nodeType": "VariableDeclaration", "scope": 16897, "src": "54896:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16875, "name": "address", "nodeType": "ElementaryTypeName", "src": "54896:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16878, "mutability": "mutable", "name": "p1", "nameLocation": "54916:2:49", "nodeType": "VariableDeclaration", "scope": 16897, "src": "54908:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16877, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "54908:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16880, "mutability": "mutable", "name": "p2", "nameLocation": "54928:2:49", "nodeType": "VariableDeclaration", "scope": 16897, "src": "54920:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16879, "name": "address", "nodeType": "ElementaryTypeName", "src": "54920:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16882, "mutability": "mutable", "name": "p3", "nameLocation": "54937:2:49", "nodeType": "VariableDeclaration", "scope": 16897, "src": "54932:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16881, "name": "bool", "nodeType": "ElementaryTypeName", "src": "54932:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "54895:45:49"}, "returnParameters": {"id": 16884, "nodeType": "ParameterList", "parameters": [], "src": "54955:0:49"}, "scope": 18025, "src": "54883:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16919, "nodeType": "Block", "src": "55134:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c75696e743235362c616464726573732c6164647265737329", "id": 16911, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "55178:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4", "typeString": "literal_string \"log(address,uint256,address,address)\""}, "value": "log(address,uint256,address,address)"}, {"id": 16912, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16899, "src": "55218:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16913, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16901, "src": "55222:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16914, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16903, "src": "55226:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16915, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16905, "src": "55230:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4", "typeString": "literal_string \"log(address,uint256,address,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 16909, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "55154:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16910, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "55158:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "55154:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16916, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55154:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16908, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "55138:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16917, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55138:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16918, "nodeType": "ExpressionStatement", "src": "55138:96:49"}]}, "id": 16920, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "55068:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16906, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16899, "mutability": "mutable", "name": "p0", "nameLocation": "55080:2:49", "nodeType": "VariableDeclaration", "scope": 16920, "src": "55072:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16898, "name": "address", "nodeType": "ElementaryTypeName", "src": "55072:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16901, "mutability": "mutable", "name": "p1", "nameLocation": "55092:2:49", "nodeType": "VariableDeclaration", "scope": 16920, "src": "55084:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16900, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "55084:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16903, "mutability": "mutable", "name": "p2", "nameLocation": "55104:2:49", "nodeType": "VariableDeclaration", "scope": 16920, "src": "55096:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16902, "name": "address", "nodeType": "ElementaryTypeName", "src": "55096:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16905, "mutability": "mutable", "name": "p3", "nameLocation": "55116:2:49", "nodeType": "VariableDeclaration", "scope": 16920, "src": "55108:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16904, "name": "address", "nodeType": "ElementaryTypeName", "src": "55108:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "55071:48:49"}, "returnParameters": {"id": 16907, "nodeType": "ParameterList", "parameters": [], "src": "55134:0:49"}, "scope": 18025, "src": "55059:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16942, "nodeType": "Block", "src": "55322:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c75696e743235362c75696e7432353629", "id": 16934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "55366:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562", "typeString": "literal_string \"log(address,string,uint256,uint256)\""}, "value": "log(address,string,uint256,uint256)"}, {"id": 16935, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16922, "src": "55405:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16936, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16924, "src": "55409:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16937, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16926, "src": "55413:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16938, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16928, "src": "55417:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562", "typeString": "literal_string \"log(address,string,uint256,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 16932, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "55342:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16933, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "55346:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "55342:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16939, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55342:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16931, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "55326:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16940, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55326:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16941, "nodeType": "ExpressionStatement", "src": "55326:95:49"}]}, "id": 16943, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "55250:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16929, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16922, "mutability": "mutable", "name": "p0", "nameLocation": "55262:2:49", "nodeType": "VariableDeclaration", "scope": 16943, "src": "55254:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16921, "name": "address", "nodeType": "ElementaryTypeName", "src": "55254:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16924, "mutability": "mutable", "name": "p1", "nameLocation": "55280:2:49", "nodeType": "VariableDeclaration", "scope": 16943, "src": "55266:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16923, "name": "string", "nodeType": "ElementaryTypeName", "src": "55266:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16926, "mutability": "mutable", "name": "p2", "nameLocation": "55292:2:49", "nodeType": "VariableDeclaration", "scope": 16943, "src": "55284:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16925, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "55284:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16928, "mutability": "mutable", "name": "p3", "nameLocation": "55304:2:49", "nodeType": "VariableDeclaration", "scope": 16943, "src": "55296:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16927, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "55296:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "55253:54:49"}, "returnParameters": {"id": 16930, "nodeType": "ParameterList", "parameters": [], "src": "55322:0:49"}, "scope": 18025, "src": "55241:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16965, "nodeType": "Block", "src": "55515:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c75696e743235362c737472696e6729", "id": 16957, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "55559:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3", "typeString": "literal_string \"log(address,string,uint256,string)\""}, "value": "log(address,string,uint256,string)"}, {"id": 16958, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16945, "src": "55597:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16959, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16947, "src": "55601:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16960, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16949, "src": "55605:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16961, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16951, "src": "55609:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3", "typeString": "literal_string \"log(address,string,uint256,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 16955, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "55535:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16956, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "55539:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "55535:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16962, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55535:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16954, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "55519:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16963, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55519:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16964, "nodeType": "ExpressionStatement", "src": "55519:94:49"}]}, "id": 16966, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "55437:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16952, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16945, "mutability": "mutable", "name": "p0", "nameLocation": "55449:2:49", "nodeType": "VariableDeclaration", "scope": 16966, "src": "55441:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16944, "name": "address", "nodeType": "ElementaryTypeName", "src": "55441:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16947, "mutability": "mutable", "name": "p1", "nameLocation": "55467:2:49", "nodeType": "VariableDeclaration", "scope": 16966, "src": "55453:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16946, "name": "string", "nodeType": "ElementaryTypeName", "src": "55453:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16949, "mutability": "mutable", "name": "p2", "nameLocation": "55479:2:49", "nodeType": "VariableDeclaration", "scope": 16966, "src": "55471:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16948, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "55471:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16951, "mutability": "mutable", "name": "p3", "nameLocation": "55497:2:49", "nodeType": "VariableDeclaration", "scope": 16966, "src": "55483:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16950, "name": "string", "nodeType": "ElementaryTypeName", "src": "55483:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "55440:60:49"}, "returnParameters": {"id": 16953, "nodeType": "ParameterList", "parameters": [], "src": "55515:0:49"}, "scope": 18025, "src": "55428:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 16988, "nodeType": "Block", "src": "55698:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c75696e743235362c626f6f6c29", "id": 16980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "55742:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4", "typeString": "literal_string \"log(address,string,uint256,bool)\""}, "value": "log(address,string,uint256,bool)"}, {"id": 16981, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16968, "src": "55778:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 16982, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16970, "src": "55782:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 16983, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16972, "src": "55786:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 16984, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16974, "src": "55790:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4", "typeString": "literal_string \"log(address,string,uint256,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 16978, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "55718:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 16979, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "55722:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "55718:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 16985, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55718:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 16977, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "55702:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 16986, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55702:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 16987, "nodeType": "ExpressionStatement", "src": "55702:92:49"}]}, "id": 16989, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "55629:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16975, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16968, "mutability": "mutable", "name": "p0", "nameLocation": "55641:2:49", "nodeType": "VariableDeclaration", "scope": 16989, "src": "55633:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16967, "name": "address", "nodeType": "ElementaryTypeName", "src": "55633:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16970, "mutability": "mutable", "name": "p1", "nameLocation": "55659:2:49", "nodeType": "VariableDeclaration", "scope": 16989, "src": "55645:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16969, "name": "string", "nodeType": "ElementaryTypeName", "src": "55645:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16972, "mutability": "mutable", "name": "p2", "nameLocation": "55671:2:49", "nodeType": "VariableDeclaration", "scope": 16989, "src": "55663:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16971, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "55663:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16974, "mutability": "mutable", "name": "p3", "nameLocation": "55680:2:49", "nodeType": "VariableDeclaration", "scope": 16989, "src": "55675:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 16973, "name": "bool", "nodeType": "ElementaryTypeName", "src": "55675:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "55632:51:49"}, "returnParameters": {"id": 16976, "nodeType": "ParameterList", "parameters": [], "src": "55698:0:49"}, "scope": 18025, "src": "55620:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17011, "nodeType": "Block", "src": "55882:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c75696e743235362c6164647265737329", "id": 17003, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "55926:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18", "typeString": "literal_string \"log(address,string,uint256,address)\""}, "value": "log(address,string,uint256,address)"}, {"id": 17004, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16991, "src": "55965:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17005, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16993, "src": "55969:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17006, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16995, "src": "55973:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 17007, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16997, "src": "55977:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18", "typeString": "literal_string \"log(address,string,uint256,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17001, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "55902:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17002, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "55906:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "55902:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17008, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55902:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17000, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "55886:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17009, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "55886:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17010, "nodeType": "ExpressionStatement", "src": "55886:95:49"}]}, "id": 17012, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "55810:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 16998, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 16991, "mutability": "mutable", "name": "p0", "nameLocation": "55822:2:49", "nodeType": "VariableDeclaration", "scope": 17012, "src": "55814:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16990, "name": "address", "nodeType": "ElementaryTypeName", "src": "55814:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 16993, "mutability": "mutable", "name": "p1", "nameLocation": "55840:2:49", "nodeType": "VariableDeclaration", "scope": 17012, "src": "55826:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 16992, "name": "string", "nodeType": "ElementaryTypeName", "src": "55826:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 16995, "mutability": "mutable", "name": "p2", "nameLocation": "55852:2:49", "nodeType": "VariableDeclaration", "scope": 17012, "src": "55844:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 16994, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "55844:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 16997, "mutability": "mutable", "name": "p3", "nameLocation": "55864:2:49", "nodeType": "VariableDeclaration", "scope": 17012, "src": "55856:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 16996, "name": "address", "nodeType": "ElementaryTypeName", "src": "55856:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "55813:54:49"}, "returnParameters": {"id": 16999, "nodeType": "ParameterList", "parameters": [], "src": "55882:0:49"}, "scope": 18025, "src": "55801:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17034, "nodeType": "Block", "src": "56075:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c737472696e672c75696e7432353629", "id": 17026, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "56119:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265", "typeString": "literal_string \"log(address,string,string,uint256)\""}, "value": "log(address,string,string,uint256)"}, {"id": 17027, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17014, "src": "56157:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17028, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17016, "src": "56161:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17029, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17018, "src": "56165:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17030, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17020, "src": "56169:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265", "typeString": "literal_string \"log(address,string,string,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17024, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "56095:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17025, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "56099:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "56095:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17031, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56095:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17023, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "56079:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17032, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56079:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17033, "nodeType": "ExpressionStatement", "src": "56079:94:49"}]}, "id": 17035, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "55997:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17021, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17014, "mutability": "mutable", "name": "p0", "nameLocation": "56009:2:49", "nodeType": "VariableDeclaration", "scope": 17035, "src": "56001:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17013, "name": "address", "nodeType": "ElementaryTypeName", "src": "56001:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17016, "mutability": "mutable", "name": "p1", "nameLocation": "56027:2:49", "nodeType": "VariableDeclaration", "scope": 17035, "src": "56013:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17015, "name": "string", "nodeType": "ElementaryTypeName", "src": "56013:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17018, "mutability": "mutable", "name": "p2", "nameLocation": "56045:2:49", "nodeType": "VariableDeclaration", "scope": 17035, "src": "56031:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17017, "name": "string", "nodeType": "ElementaryTypeName", "src": "56031:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17020, "mutability": "mutable", "name": "p3", "nameLocation": "56057:2:49", "nodeType": "VariableDeclaration", "scope": 17035, "src": "56049:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17019, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "56049:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "56000:60:49"}, "returnParameters": {"id": 17022, "nodeType": "ParameterList", "parameters": [], "src": "56075:0:49"}, "scope": 18025, "src": "55988:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17057, "nodeType": "Block", "src": "56273:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729", "id": 17049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "56317:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c", "typeString": "literal_string \"log(address,string,string,string)\""}, "value": "log(address,string,string,string)"}, {"id": 17050, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17037, "src": "56354:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17051, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17039, "src": "56358:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17052, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17041, "src": "56362:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17053, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17043, "src": "56366:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c", "typeString": "literal_string \"log(address,string,string,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17047, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "56293:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17048, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "56297:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "56293:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17054, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56293:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17046, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "56277:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17055, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56277:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17056, "nodeType": "ExpressionStatement", "src": "56277:93:49"}]}, "id": 17058, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "56189:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17044, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17037, "mutability": "mutable", "name": "p0", "nameLocation": "56201:2:49", "nodeType": "VariableDeclaration", "scope": 17058, "src": "56193:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17036, "name": "address", "nodeType": "ElementaryTypeName", "src": "56193:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17039, "mutability": "mutable", "name": "p1", "nameLocation": "56219:2:49", "nodeType": "VariableDeclaration", "scope": 17058, "src": "56205:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17038, "name": "string", "nodeType": "ElementaryTypeName", "src": "56205:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17041, "mutability": "mutable", "name": "p2", "nameLocation": "56237:2:49", "nodeType": "VariableDeclaration", "scope": 17058, "src": "56223:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17040, "name": "string", "nodeType": "ElementaryTypeName", "src": "56223:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17043, "mutability": "mutable", "name": "p3", "nameLocation": "56255:2:49", "nodeType": "VariableDeclaration", "scope": 17058, "src": "56241:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17042, "name": "string", "nodeType": "ElementaryTypeName", "src": "56241:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "56192:66:49"}, "returnParameters": {"id": 17045, "nodeType": "ParameterList", "parameters": [], "src": "56273:0:49"}, "scope": 18025, "src": "56180:194:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17080, "nodeType": "Block", "src": "56461:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29", "id": 17072, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "56505:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed", "typeString": "literal_string \"log(address,string,string,bool)\""}, "value": "log(address,string,string,bool)"}, {"id": 17073, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17060, "src": "56540:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17074, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17062, "src": "56544:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17075, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17064, "src": "56548:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17076, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17066, "src": "56552:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed", "typeString": "literal_string \"log(address,string,string,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17070, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "56481:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17071, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "56485:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "56481:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17077, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56481:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17069, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "56465:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17078, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56465:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17079, "nodeType": "ExpressionStatement", "src": "56465:91:49"}]}, "id": 17081, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "56386:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17067, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17060, "mutability": "mutable", "name": "p0", "nameLocation": "56398:2:49", "nodeType": "VariableDeclaration", "scope": 17081, "src": "56390:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17059, "name": "address", "nodeType": "ElementaryTypeName", "src": "56390:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17062, "mutability": "mutable", "name": "p1", "nameLocation": "56416:2:49", "nodeType": "VariableDeclaration", "scope": 17081, "src": "56402:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17061, "name": "string", "nodeType": "ElementaryTypeName", "src": "56402:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17064, "mutability": "mutable", "name": "p2", "nameLocation": "56434:2:49", "nodeType": "VariableDeclaration", "scope": 17081, "src": "56420:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17063, "name": "string", "nodeType": "ElementaryTypeName", "src": "56420:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17066, "mutability": "mutable", "name": "p3", "nameLocation": "56443:2:49", "nodeType": "VariableDeclaration", "scope": 17081, "src": "56438:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17065, "name": "bool", "nodeType": "ElementaryTypeName", "src": "56438:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "56389:57:49"}, "returnParameters": {"id": 17068, "nodeType": "ParameterList", "parameters": [], "src": "56461:0:49"}, "scope": 18025, "src": "56377:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17103, "nodeType": "Block", "src": "56650:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329", "id": 17095, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "56694:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f", "typeString": "literal_string \"log(address,string,string,address)\""}, "value": "log(address,string,string,address)"}, {"id": 17096, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17083, "src": "56732:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17097, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17085, "src": "56736:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17098, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17087, "src": "56740:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17099, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17089, "src": "56744:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f", "typeString": "literal_string \"log(address,string,string,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17093, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "56670:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17094, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "56674:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "56670:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17100, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56670:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17092, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "56654:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17101, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56654:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17102, "nodeType": "ExpressionStatement", "src": "56654:94:49"}]}, "id": 17104, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "56572:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17090, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17083, "mutability": "mutable", "name": "p0", "nameLocation": "56584:2:49", "nodeType": "VariableDeclaration", "scope": 17104, "src": "56576:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17082, "name": "address", "nodeType": "ElementaryTypeName", "src": "56576:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17085, "mutability": "mutable", "name": "p1", "nameLocation": "56602:2:49", "nodeType": "VariableDeclaration", "scope": 17104, "src": "56588:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17084, "name": "string", "nodeType": "ElementaryTypeName", "src": "56588:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17087, "mutability": "mutable", "name": "p2", "nameLocation": "56620:2:49", "nodeType": "VariableDeclaration", "scope": 17104, "src": "56606:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17086, "name": "string", "nodeType": "ElementaryTypeName", "src": "56606:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17089, "mutability": "mutable", "name": "p3", "nameLocation": "56632:2:49", "nodeType": "VariableDeclaration", "scope": 17104, "src": "56624:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17088, "name": "address", "nodeType": "ElementaryTypeName", "src": "56624:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "56575:60:49"}, "returnParameters": {"id": 17091, "nodeType": "ParameterList", "parameters": [], "src": "56650:0:49"}, "scope": 18025, "src": "56563:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17126, "nodeType": "Block", "src": "56833:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7432353629", "id": 17118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "56877:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345", "typeString": "literal_string \"log(address,string,bool,uint256)\""}, "value": "log(address,string,bool,uint256)"}, {"id": 17119, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17106, "src": "56913:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17120, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17108, "src": "56917:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17121, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17110, "src": "56921:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17122, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17112, "src": "56925:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345", "typeString": "literal_string \"log(address,string,bool,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17116, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "56853:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17117, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "56857:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "56853:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17123, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56853:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17115, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "56837:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17124, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "56837:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17125, "nodeType": "ExpressionStatement", "src": "56837:92:49"}]}, "id": 17127, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "56764:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17113, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17106, "mutability": "mutable", "name": "p0", "nameLocation": "56776:2:49", "nodeType": "VariableDeclaration", "scope": 17127, "src": "56768:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17105, "name": "address", "nodeType": "ElementaryTypeName", "src": "56768:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17108, "mutability": "mutable", "name": "p1", "nameLocation": "56794:2:49", "nodeType": "VariableDeclaration", "scope": 17127, "src": "56780:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17107, "name": "string", "nodeType": "ElementaryTypeName", "src": "56780:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17110, "mutability": "mutable", "name": "p2", "nameLocation": "56803:2:49", "nodeType": "VariableDeclaration", "scope": 17127, "src": "56798:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17109, "name": "bool", "nodeType": "ElementaryTypeName", "src": "56798:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17112, "mutability": "mutable", "name": "p3", "nameLocation": "56815:2:49", "nodeType": "VariableDeclaration", "scope": 17127, "src": "56807:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17111, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "56807:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "56767:51:49"}, "returnParameters": {"id": 17114, "nodeType": "ParameterList", "parameters": [], "src": "56833:0:49"}, "scope": 18025, "src": "56755:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17149, "nodeType": "Block", "src": "57020:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729", "id": 17141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "57064:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc", "typeString": "literal_string \"log(address,string,bool,string)\""}, "value": "log(address,string,bool,string)"}, {"id": 17142, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17129, "src": "57099:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17143, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17131, "src": "57103:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17144, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17133, "src": "57107:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17145, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17135, "src": "57111:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc", "typeString": "literal_string \"log(address,string,bool,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17139, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "57040:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17140, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "57044:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "57040:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17146, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57040:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17138, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "57024:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17147, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57024:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17148, "nodeType": "ExpressionStatement", "src": "57024:91:49"}]}, "id": 17150, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "56945:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17136, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17129, "mutability": "mutable", "name": "p0", "nameLocation": "56957:2:49", "nodeType": "VariableDeclaration", "scope": 17150, "src": "56949:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17128, "name": "address", "nodeType": "ElementaryTypeName", "src": "56949:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17131, "mutability": "mutable", "name": "p1", "nameLocation": "56975:2:49", "nodeType": "VariableDeclaration", "scope": 17150, "src": "56961:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17130, "name": "string", "nodeType": "ElementaryTypeName", "src": "56961:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17133, "mutability": "mutable", "name": "p2", "nameLocation": "56984:2:49", "nodeType": "VariableDeclaration", "scope": 17150, "src": "56979:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17132, "name": "bool", "nodeType": "ElementaryTypeName", "src": "56979:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17135, "mutability": "mutable", "name": "p3", "nameLocation": "57002:2:49", "nodeType": "VariableDeclaration", "scope": 17150, "src": "56988:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17134, "name": "string", "nodeType": "ElementaryTypeName", "src": "56988:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "56948:57:49"}, "returnParameters": {"id": 17137, "nodeType": "ParameterList", "parameters": [], "src": "57020:0:49"}, "scope": 18025, "src": "56936:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17172, "nodeType": "Block", "src": "57197:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29", "id": 17164, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "57241:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08", "typeString": "literal_string \"log(address,string,bool,bool)\""}, "value": "log(address,string,bool,bool)"}, {"id": 17165, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17152, "src": "57274:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17166, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17154, "src": "57278:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17167, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17156, "src": "57282:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17168, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17158, "src": "57286:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08", "typeString": "literal_string \"log(address,string,bool,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17162, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "57217:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17163, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "57221:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "57217:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17169, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57217:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17161, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "57201:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17170, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57201:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17171, "nodeType": "ExpressionStatement", "src": "57201:89:49"}]}, "id": 17173, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "57131:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17159, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17152, "mutability": "mutable", "name": "p0", "nameLocation": "57143:2:49", "nodeType": "VariableDeclaration", "scope": 17173, "src": "57135:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17151, "name": "address", "nodeType": "ElementaryTypeName", "src": "57135:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17154, "mutability": "mutable", "name": "p1", "nameLocation": "57161:2:49", "nodeType": "VariableDeclaration", "scope": 17173, "src": "57147:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17153, "name": "string", "nodeType": "ElementaryTypeName", "src": "57147:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17156, "mutability": "mutable", "name": "p2", "nameLocation": "57170:2:49", "nodeType": "VariableDeclaration", "scope": 17173, "src": "57165:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17155, "name": "bool", "nodeType": "ElementaryTypeName", "src": "57165:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17158, "mutability": "mutable", "name": "p3", "nameLocation": "57179:2:49", "nodeType": "VariableDeclaration", "scope": 17173, "src": "57174:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17157, "name": "bool", "nodeType": "ElementaryTypeName", "src": "57174:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "57134:48:49"}, "returnParameters": {"id": 17160, "nodeType": "ParameterList", "parameters": [], "src": "57197:0:49"}, "scope": 18025, "src": "57122:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17195, "nodeType": "Block", "src": "57375:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329", "id": 17187, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "57419:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970", "typeString": "literal_string \"log(address,string,bool,address)\""}, "value": "log(address,string,bool,address)"}, {"id": 17188, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17175, "src": "57455:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17189, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17177, "src": "57459:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17190, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17179, "src": "57463:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17191, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17181, "src": "57467:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970", "typeString": "literal_string \"log(address,string,bool,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17185, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "57395:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17186, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "57399:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "57395:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17192, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57395:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17184, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "57379:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57379:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17194, "nodeType": "ExpressionStatement", "src": "57379:92:49"}]}, "id": 17196, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "57306:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17182, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17175, "mutability": "mutable", "name": "p0", "nameLocation": "57318:2:49", "nodeType": "VariableDeclaration", "scope": 17196, "src": "57310:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17174, "name": "address", "nodeType": "ElementaryTypeName", "src": "57310:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17177, "mutability": "mutable", "name": "p1", "nameLocation": "57336:2:49", "nodeType": "VariableDeclaration", "scope": 17196, "src": "57322:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17176, "name": "string", "nodeType": "ElementaryTypeName", "src": "57322:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17179, "mutability": "mutable", "name": "p2", "nameLocation": "57345:2:49", "nodeType": "VariableDeclaration", "scope": 17196, "src": "57340:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17178, "name": "bool", "nodeType": "ElementaryTypeName", "src": "57340:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17181, "mutability": "mutable", "name": "p3", "nameLocation": "57357:2:49", "nodeType": "VariableDeclaration", "scope": 17196, "src": "57349:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17180, "name": "address", "nodeType": "ElementaryTypeName", "src": "57349:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "57309:51:49"}, "returnParameters": {"id": 17183, "nodeType": "ParameterList", "parameters": [], "src": "57375:0:49"}, "scope": 18025, "src": "57297:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17218, "nodeType": "Block", "src": "57559:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c616464726573732c75696e7432353629", "id": 17210, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "57603:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7", "typeString": "literal_string \"log(address,string,address,uint256)\""}, "value": "log(address,string,address,uint256)"}, {"id": 17211, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17198, "src": "57642:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17212, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17200, "src": "57646:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17213, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17202, "src": "57650:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17214, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17204, "src": "57654:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7", "typeString": "literal_string \"log(address,string,address,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17208, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "57579:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17209, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "57583:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "57579:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17215, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57579:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17207, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "57563:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17216, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57563:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17217, "nodeType": "ExpressionStatement", "src": "57563:95:49"}]}, "id": 17219, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "57487:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17205, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17198, "mutability": "mutable", "name": "p0", "nameLocation": "57499:2:49", "nodeType": "VariableDeclaration", "scope": 17219, "src": "57491:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17197, "name": "address", "nodeType": "ElementaryTypeName", "src": "57491:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17200, "mutability": "mutable", "name": "p1", "nameLocation": "57517:2:49", "nodeType": "VariableDeclaration", "scope": 17219, "src": "57503:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17199, "name": "string", "nodeType": "ElementaryTypeName", "src": "57503:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17202, "mutability": "mutable", "name": "p2", "nameLocation": "57529:2:49", "nodeType": "VariableDeclaration", "scope": 17219, "src": "57521:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17201, "name": "address", "nodeType": "ElementaryTypeName", "src": "57521:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17204, "mutability": "mutable", "name": "p3", "nameLocation": "57541:2:49", "nodeType": "VariableDeclaration", "scope": 17219, "src": "57533:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17203, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "57533:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "57490:54:49"}, "returnParameters": {"id": 17206, "nodeType": "ParameterList", "parameters": [], "src": "57559:0:49"}, "scope": 18025, "src": "57478:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17241, "nodeType": "Block", "src": "57752:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729", "id": 17233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "57796:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea", "typeString": "literal_string \"log(address,string,address,string)\""}, "value": "log(address,string,address,string)"}, {"id": 17234, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17221, "src": "57834:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17235, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17223, "src": "57838:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17236, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17225, "src": "57842:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17237, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17227, "src": "57846:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea", "typeString": "literal_string \"log(address,string,address,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17231, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "57772:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17232, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "57776:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "57772:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17238, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57772:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17230, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "57756:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17239, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57756:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17240, "nodeType": "ExpressionStatement", "src": "57756:94:49"}]}, "id": 17242, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "57674:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17228, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17221, "mutability": "mutable", "name": "p0", "nameLocation": "57686:2:49", "nodeType": "VariableDeclaration", "scope": 17242, "src": "57678:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17220, "name": "address", "nodeType": "ElementaryTypeName", "src": "57678:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17223, "mutability": "mutable", "name": "p1", "nameLocation": "57704:2:49", "nodeType": "VariableDeclaration", "scope": 17242, "src": "57690:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17222, "name": "string", "nodeType": "ElementaryTypeName", "src": "57690:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17225, "mutability": "mutable", "name": "p2", "nameLocation": "57716:2:49", "nodeType": "VariableDeclaration", "scope": 17242, "src": "57708:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17224, "name": "address", "nodeType": "ElementaryTypeName", "src": "57708:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17227, "mutability": "mutable", "name": "p3", "nameLocation": "57734:2:49", "nodeType": "VariableDeclaration", "scope": 17242, "src": "57720:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17226, "name": "string", "nodeType": "ElementaryTypeName", "src": "57720:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "57677:60:49"}, "returnParameters": {"id": 17229, "nodeType": "ParameterList", "parameters": [], "src": "57752:0:49"}, "scope": 18025, "src": "57665:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17264, "nodeType": "Block", "src": "57935:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29", "id": 17256, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "57979:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081", "typeString": "literal_string \"log(address,string,address,bool)\""}, "value": "log(address,string,address,bool)"}, {"id": 17257, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17244, "src": "58015:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17258, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17246, "src": "58019:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17259, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17248, "src": "58023:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17260, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17250, "src": "58027:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081", "typeString": "literal_string \"log(address,string,address,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17254, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "57955:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17255, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "57959:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "57955:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17261, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57955:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17253, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "57939:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17262, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "57939:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17263, "nodeType": "ExpressionStatement", "src": "57939:92:49"}]}, "id": 17265, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "57866:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17251, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17244, "mutability": "mutable", "name": "p0", "nameLocation": "57878:2:49", "nodeType": "VariableDeclaration", "scope": 17265, "src": "57870:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17243, "name": "address", "nodeType": "ElementaryTypeName", "src": "57870:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17246, "mutability": "mutable", "name": "p1", "nameLocation": "57896:2:49", "nodeType": "VariableDeclaration", "scope": 17265, "src": "57882:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17245, "name": "string", "nodeType": "ElementaryTypeName", "src": "57882:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17248, "mutability": "mutable", "name": "p2", "nameLocation": "57908:2:49", "nodeType": "VariableDeclaration", "scope": 17265, "src": "57900:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17247, "name": "address", "nodeType": "ElementaryTypeName", "src": "57900:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17250, "mutability": "mutable", "name": "p3", "nameLocation": "57917:2:49", "nodeType": "VariableDeclaration", "scope": 17265, "src": "57912:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17249, "name": "bool", "nodeType": "ElementaryTypeName", "src": "57912:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "57869:51:49"}, "returnParameters": {"id": 17252, "nodeType": "ParameterList", "parameters": [], "src": "57935:0:49"}, "scope": 18025, "src": "57857:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17287, "nodeType": "Block", "src": "58119:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329", "id": 17279, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "58163:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121", "typeString": "literal_string \"log(address,string,address,address)\""}, "value": "log(address,string,address,address)"}, {"id": 17280, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17267, "src": "58202:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17281, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17269, "src": "58206:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17282, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17271, "src": "58210:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17283, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17273, "src": "58214:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121", "typeString": "literal_string \"log(address,string,address,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17277, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "58139:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17278, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "58143:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "58139:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17284, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58139:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17276, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "58123:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17285, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58123:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17286, "nodeType": "ExpressionStatement", "src": "58123:95:49"}]}, "id": 17288, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "58047:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17274, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17267, "mutability": "mutable", "name": "p0", "nameLocation": "58059:2:49", "nodeType": "VariableDeclaration", "scope": 17288, "src": "58051:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17266, "name": "address", "nodeType": "ElementaryTypeName", "src": "58051:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17269, "mutability": "mutable", "name": "p1", "nameLocation": "58077:2:49", "nodeType": "VariableDeclaration", "scope": 17288, "src": "58063:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17268, "name": "string", "nodeType": "ElementaryTypeName", "src": "58063:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17271, "mutability": "mutable", "name": "p2", "nameLocation": "58089:2:49", "nodeType": "VariableDeclaration", "scope": 17288, "src": "58081:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17270, "name": "address", "nodeType": "ElementaryTypeName", "src": "58081:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17273, "mutability": "mutable", "name": "p3", "nameLocation": "58101:2:49", "nodeType": "VariableDeclaration", "scope": 17288, "src": "58093:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17272, "name": "address", "nodeType": "ElementaryTypeName", "src": "58093:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "58050:54:49"}, "returnParameters": {"id": 17275, "nodeType": "ParameterList", "parameters": [], "src": "58119:0:49"}, "scope": 18025, "src": "58038:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17310, "nodeType": "Block", "src": "58297:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e743235362c75696e7432353629", "id": 17302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "58341:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4", "typeString": "literal_string \"log(address,bool,uint256,uint256)\""}, "value": "log(address,bool,uint256,uint256)"}, {"id": 17303, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17290, "src": "58378:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17304, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17292, "src": "58382:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17305, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17294, "src": "58386:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 17306, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17296, "src": "58390:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4", "typeString": "literal_string \"log(address,bool,uint256,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17300, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "58317:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17301, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "58321:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "58317:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17307, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58317:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17299, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "58301:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17308, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58301:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17309, "nodeType": "ExpressionStatement", "src": "58301:93:49"}]}, "id": 17311, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "58234:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17297, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17290, "mutability": "mutable", "name": "p0", "nameLocation": "58246:2:49", "nodeType": "VariableDeclaration", "scope": 17311, "src": "58238:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17289, "name": "address", "nodeType": "ElementaryTypeName", "src": "58238:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17292, "mutability": "mutable", "name": "p1", "nameLocation": "58255:2:49", "nodeType": "VariableDeclaration", "scope": 17311, "src": "58250:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17291, "name": "bool", "nodeType": "ElementaryTypeName", "src": "58250:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17294, "mutability": "mutable", "name": "p2", "nameLocation": "58267:2:49", "nodeType": "VariableDeclaration", "scope": 17311, "src": "58259:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17293, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "58259:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 17296, "mutability": "mutable", "name": "p3", "nameLocation": "58279:2:49", "nodeType": "VariableDeclaration", "scope": 17311, "src": "58271:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17295, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "58271:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "58237:45:49"}, "returnParameters": {"id": 17298, "nodeType": "ParameterList", "parameters": [], "src": "58297:0:49"}, "scope": 18025, "src": "58225:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17333, "nodeType": "Block", "src": "58479:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e743235362c737472696e6729", "id": 17325, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "58523:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283", "typeString": "literal_string \"log(address,bool,uint256,string)\""}, "value": "log(address,bool,uint256,string)"}, {"id": 17326, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17313, "src": "58559:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17327, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17315, "src": "58563:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17328, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17317, "src": "58567:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 17329, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17319, "src": "58571:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283", "typeString": "literal_string \"log(address,bool,uint256,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17323, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "58499:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17324, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "58503:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "58499:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17330, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58499:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17322, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "58483:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17331, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58483:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17332, "nodeType": "ExpressionStatement", "src": "58483:92:49"}]}, "id": 17334, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "58410:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17320, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17313, "mutability": "mutable", "name": "p0", "nameLocation": "58422:2:49", "nodeType": "VariableDeclaration", "scope": 17334, "src": "58414:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17312, "name": "address", "nodeType": "ElementaryTypeName", "src": "58414:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17315, "mutability": "mutable", "name": "p1", "nameLocation": "58431:2:49", "nodeType": "VariableDeclaration", "scope": 17334, "src": "58426:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17314, "name": "bool", "nodeType": "ElementaryTypeName", "src": "58426:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17317, "mutability": "mutable", "name": "p2", "nameLocation": "58443:2:49", "nodeType": "VariableDeclaration", "scope": 17334, "src": "58435:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17316, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "58435:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 17319, "mutability": "mutable", "name": "p3", "nameLocation": "58461:2:49", "nodeType": "VariableDeclaration", "scope": 17334, "src": "58447:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17318, "name": "string", "nodeType": "ElementaryTypeName", "src": "58447:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "58413:51:49"}, "returnParameters": {"id": 17321, "nodeType": "ParameterList", "parameters": [], "src": "58479:0:49"}, "scope": 18025, "src": "58401:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17356, "nodeType": "Block", "src": "58651:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e743235362c626f6f6c29", "id": 17348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "58695:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c", "typeString": "literal_string \"log(address,bool,uint256,bool)\""}, "value": "log(address,bool,uint256,bool)"}, {"id": 17349, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17336, "src": "58729:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17350, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17338, "src": "58733:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17351, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17340, "src": "58737:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 17352, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17342, "src": "58741:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c", "typeString": "literal_string \"log(address,bool,uint256,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17346, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "58671:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17347, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "58675:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "58671:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17353, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58671:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17345, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "58655:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17354, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58655:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17355, "nodeType": "ExpressionStatement", "src": "58655:90:49"}]}, "id": 17357, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "58591:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17343, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17336, "mutability": "mutable", "name": "p0", "nameLocation": "58603:2:49", "nodeType": "VariableDeclaration", "scope": 17357, "src": "58595:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17335, "name": "address", "nodeType": "ElementaryTypeName", "src": "58595:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17338, "mutability": "mutable", "name": "p1", "nameLocation": "58612:2:49", "nodeType": "VariableDeclaration", "scope": 17357, "src": "58607:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17337, "name": "bool", "nodeType": "ElementaryTypeName", "src": "58607:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17340, "mutability": "mutable", "name": "p2", "nameLocation": "58624:2:49", "nodeType": "VariableDeclaration", "scope": 17357, "src": "58616:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17339, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "58616:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 17342, "mutability": "mutable", "name": "p3", "nameLocation": "58633:2:49", "nodeType": "VariableDeclaration", "scope": 17357, "src": "58628:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17341, "name": "bool", "nodeType": "ElementaryTypeName", "src": "58628:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "58594:42:49"}, "returnParameters": {"id": 17344, "nodeType": "ParameterList", "parameters": [], "src": "58651:0:49"}, "scope": 18025, "src": "58582:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17379, "nodeType": "Block", "src": "58824:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e743235362c6164647265737329", "id": 17371, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "58868:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee", "typeString": "literal_string \"log(address,bool,uint256,address)\""}, "value": "log(address,bool,uint256,address)"}, {"id": 17372, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17359, "src": "58905:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17373, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17361, "src": "58909:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17374, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17363, "src": "58913:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 17375, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17365, "src": "58917:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee", "typeString": "literal_string \"log(address,bool,uint256,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17369, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "58844:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17370, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "58848:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "58844:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17376, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58844:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17368, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "58828:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17377, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "58828:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17378, "nodeType": "ExpressionStatement", "src": "58828:93:49"}]}, "id": 17380, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "58761:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17366, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17359, "mutability": "mutable", "name": "p0", "nameLocation": "58773:2:49", "nodeType": "VariableDeclaration", "scope": 17380, "src": "58765:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17358, "name": "address", "nodeType": "ElementaryTypeName", "src": "58765:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17361, "mutability": "mutable", "name": "p1", "nameLocation": "58782:2:49", "nodeType": "VariableDeclaration", "scope": 17380, "src": "58777:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17360, "name": "bool", "nodeType": "ElementaryTypeName", "src": "58777:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17363, "mutability": "mutable", "name": "p2", "nameLocation": "58794:2:49", "nodeType": "VariableDeclaration", "scope": 17380, "src": "58786:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17362, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "58786:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 17365, "mutability": "mutable", "name": "p3", "nameLocation": "58806:2:49", "nodeType": "VariableDeclaration", "scope": 17380, "src": "58798:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17364, "name": "address", "nodeType": "ElementaryTypeName", "src": "58798:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "58764:45:49"}, "returnParameters": {"id": 17367, "nodeType": "ParameterList", "parameters": [], "src": "58824:0:49"}, "scope": 18025, "src": "58752:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17402, "nodeType": "Block", "src": "59006:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7432353629", "id": 17394, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "59050:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69", "typeString": "literal_string \"log(address,bool,string,uint256)\""}, "value": "log(address,bool,string,uint256)"}, {"id": 17395, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17382, "src": "59086:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17396, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17384, "src": "59090:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17397, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17386, "src": "59094:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17398, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17388, "src": "59098:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69", "typeString": "literal_string \"log(address,bool,string,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17392, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "59026:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "59030:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "59026:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17399, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59026:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17391, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "59010:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17400, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59010:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17401, "nodeType": "ExpressionStatement", "src": "59010:92:49"}]}, "id": 17403, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "58937:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17389, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17382, "mutability": "mutable", "name": "p0", "nameLocation": "58949:2:49", "nodeType": "VariableDeclaration", "scope": 17403, "src": "58941:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17381, "name": "address", "nodeType": "ElementaryTypeName", "src": "58941:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17384, "mutability": "mutable", "name": "p1", "nameLocation": "58958:2:49", "nodeType": "VariableDeclaration", "scope": 17403, "src": "58953:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17383, "name": "bool", "nodeType": "ElementaryTypeName", "src": "58953:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17386, "mutability": "mutable", "name": "p2", "nameLocation": "58976:2:49", "nodeType": "VariableDeclaration", "scope": 17403, "src": "58962:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17385, "name": "string", "nodeType": "ElementaryTypeName", "src": "58962:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17388, "mutability": "mutable", "name": "p3", "nameLocation": "58988:2:49", "nodeType": "VariableDeclaration", "scope": 17403, "src": "58980:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17387, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "58980:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "58940:51:49"}, "returnParameters": {"id": 17390, "nodeType": "ParameterList", "parameters": [], "src": "59006:0:49"}, "scope": 18025, "src": "58928:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17425, "nodeType": "Block", "src": "59193:99:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729", "id": 17417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "59237:33:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f", "typeString": "literal_string \"log(address,bool,string,string)\""}, "value": "log(address,bool,string,string)"}, {"id": 17418, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17405, "src": "59272:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17419, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17407, "src": "59276:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17420, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17409, "src": "59280:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17421, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17411, "src": "59284:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f", "typeString": "literal_string \"log(address,bool,string,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17415, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "59213:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17416, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "59217:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "59213:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17422, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59213:74:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17414, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "59197:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17423, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59197:91:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17424, "nodeType": "ExpressionStatement", "src": "59197:91:49"}]}, "id": 17426, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "59118:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17412, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17405, "mutability": "mutable", "name": "p0", "nameLocation": "59130:2:49", "nodeType": "VariableDeclaration", "scope": 17426, "src": "59122:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17404, "name": "address", "nodeType": "ElementaryTypeName", "src": "59122:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17407, "mutability": "mutable", "name": "p1", "nameLocation": "59139:2:49", "nodeType": "VariableDeclaration", "scope": 17426, "src": "59134:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17406, "name": "bool", "nodeType": "ElementaryTypeName", "src": "59134:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17409, "mutability": "mutable", "name": "p2", "nameLocation": "59157:2:49", "nodeType": "VariableDeclaration", "scope": 17426, "src": "59143:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17408, "name": "string", "nodeType": "ElementaryTypeName", "src": "59143:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17411, "mutability": "mutable", "name": "p3", "nameLocation": "59175:2:49", "nodeType": "VariableDeclaration", "scope": 17426, "src": "59161:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17410, "name": "string", "nodeType": "ElementaryTypeName", "src": "59161:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "59121:57:49"}, "returnParameters": {"id": 17413, "nodeType": "ParameterList", "parameters": [], "src": "59193:0:49"}, "scope": 18025, "src": "59109:183:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17448, "nodeType": "Block", "src": "59370:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29", "id": 17440, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "59414:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f", "typeString": "literal_string \"log(address,bool,string,bool)\""}, "value": "log(address,bool,string,bool)"}, {"id": 17441, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17428, "src": "59447:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17442, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17430, "src": "59451:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17443, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17432, "src": "59455:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17444, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17434, "src": "59459:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f", "typeString": "literal_string \"log(address,bool,string,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17438, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "59390:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17439, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "59394:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "59390:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17445, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59390:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17437, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "59374:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17446, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59374:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17447, "nodeType": "ExpressionStatement", "src": "59374:89:49"}]}, "id": 17449, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "59304:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17435, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17428, "mutability": "mutable", "name": "p0", "nameLocation": "59316:2:49", "nodeType": "VariableDeclaration", "scope": 17449, "src": "59308:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17427, "name": "address", "nodeType": "ElementaryTypeName", "src": "59308:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17430, "mutability": "mutable", "name": "p1", "nameLocation": "59325:2:49", "nodeType": "VariableDeclaration", "scope": 17449, "src": "59320:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17429, "name": "bool", "nodeType": "ElementaryTypeName", "src": "59320:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17432, "mutability": "mutable", "name": "p2", "nameLocation": "59343:2:49", "nodeType": "VariableDeclaration", "scope": 17449, "src": "59329:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17431, "name": "string", "nodeType": "ElementaryTypeName", "src": "59329:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17434, "mutability": "mutable", "name": "p3", "nameLocation": "59352:2:49", "nodeType": "VariableDeclaration", "scope": 17449, "src": "59347:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17433, "name": "bool", "nodeType": "ElementaryTypeName", "src": "59347:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "59307:48:49"}, "returnParameters": {"id": 17436, "nodeType": "ParameterList", "parameters": [], "src": "59370:0:49"}, "scope": 18025, "src": "59295:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17471, "nodeType": "Block", "src": "59548:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329", "id": 17463, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "59592:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc", "typeString": "literal_string \"log(address,bool,string,address)\""}, "value": "log(address,bool,string,address)"}, {"id": 17464, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17451, "src": "59628:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17465, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17453, "src": "59632:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17466, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17455, "src": "59636:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17467, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17457, "src": "59640:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc", "typeString": "literal_string \"log(address,bool,string,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17461, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "59568:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17462, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "59572:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "59568:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17468, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59568:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17460, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "59552:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17469, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59552:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17470, "nodeType": "ExpressionStatement", "src": "59552:92:49"}]}, "id": 17472, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "59479:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17458, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17451, "mutability": "mutable", "name": "p0", "nameLocation": "59491:2:49", "nodeType": "VariableDeclaration", "scope": 17472, "src": "59483:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17450, "name": "address", "nodeType": "ElementaryTypeName", "src": "59483:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17453, "mutability": "mutable", "name": "p1", "nameLocation": "59500:2:49", "nodeType": "VariableDeclaration", "scope": 17472, "src": "59495:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17452, "name": "bool", "nodeType": "ElementaryTypeName", "src": "59495:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17455, "mutability": "mutable", "name": "p2", "nameLocation": "59518:2:49", "nodeType": "VariableDeclaration", "scope": 17472, "src": "59504:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17454, "name": "string", "nodeType": "ElementaryTypeName", "src": "59504:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17457, "mutability": "mutable", "name": "p3", "nameLocation": "59530:2:49", "nodeType": "VariableDeclaration", "scope": 17472, "src": "59522:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17456, "name": "address", "nodeType": "ElementaryTypeName", "src": "59522:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "59482:51:49"}, "returnParameters": {"id": 17459, "nodeType": "ParameterList", "parameters": [], "src": "59548:0:49"}, "scope": 18025, "src": "59470:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17494, "nodeType": "Block", "src": "59720:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7432353629", "id": 17486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "59764:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e", "typeString": "literal_string \"log(address,bool,bool,uint256)\""}, "value": "log(address,bool,bool,uint256)"}, {"id": 17487, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17474, "src": "59798:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17488, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17476, "src": "59802:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17489, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17478, "src": "59806:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17490, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17480, "src": "59810:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e", "typeString": "literal_string \"log(address,bool,bool,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17484, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "59740:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17485, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "59744:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "59740:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17491, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59740:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17483, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "59724:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17492, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59724:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17493, "nodeType": "ExpressionStatement", "src": "59724:90:49"}]}, "id": 17495, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "59660:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17481, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17474, "mutability": "mutable", "name": "p0", "nameLocation": "59672:2:49", "nodeType": "VariableDeclaration", "scope": 17495, "src": "59664:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17473, "name": "address", "nodeType": "ElementaryTypeName", "src": "59664:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17476, "mutability": "mutable", "name": "p1", "nameLocation": "59681:2:49", "nodeType": "VariableDeclaration", "scope": 17495, "src": "59676:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17475, "name": "bool", "nodeType": "ElementaryTypeName", "src": "59676:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17478, "mutability": "mutable", "name": "p2", "nameLocation": "59690:2:49", "nodeType": "VariableDeclaration", "scope": 17495, "src": "59685:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17477, "name": "bool", "nodeType": "ElementaryTypeName", "src": "59685:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17480, "mutability": "mutable", "name": "p3", "nameLocation": "59702:2:49", "nodeType": "VariableDeclaration", "scope": 17495, "src": "59694:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17479, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "59694:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "59663:42:49"}, "returnParameters": {"id": 17482, "nodeType": "ParameterList", "parameters": [], "src": "59720:0:49"}, "scope": 18025, "src": "59651:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17517, "nodeType": "Block", "src": "59896:97:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729", "id": 17509, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "59940:31:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300", "typeString": "literal_string \"log(address,bool,bool,string)\""}, "value": "log(address,bool,bool,string)"}, {"id": 17510, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17497, "src": "59973:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17511, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17499, "src": "59977:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17512, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17501, "src": "59981:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17513, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17503, "src": "59985:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300", "typeString": "literal_string \"log(address,bool,bool,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17507, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "59916:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17508, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "59920:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "59916:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17514, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59916:72:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17506, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "59900:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17515, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "59900:89:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17516, "nodeType": "ExpressionStatement", "src": "59900:89:49"}]}, "id": 17518, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "59830:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17504, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17497, "mutability": "mutable", "name": "p0", "nameLocation": "59842:2:49", "nodeType": "VariableDeclaration", "scope": 17518, "src": "59834:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17496, "name": "address", "nodeType": "ElementaryTypeName", "src": "59834:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17499, "mutability": "mutable", "name": "p1", "nameLocation": "59851:2:49", "nodeType": "VariableDeclaration", "scope": 17518, "src": "59846:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17498, "name": "bool", "nodeType": "ElementaryTypeName", "src": "59846:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17501, "mutability": "mutable", "name": "p2", "nameLocation": "59860:2:49", "nodeType": "VariableDeclaration", "scope": 17518, "src": "59855:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17500, "name": "bool", "nodeType": "ElementaryTypeName", "src": "59855:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17503, "mutability": "mutable", "name": "p3", "nameLocation": "59878:2:49", "nodeType": "VariableDeclaration", "scope": 17518, "src": "59864:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17502, "name": "string", "nodeType": "ElementaryTypeName", "src": "59864:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "59833:48:49"}, "returnParameters": {"id": 17505, "nodeType": "ParameterList", "parameters": [], "src": "59896:0:49"}, "scope": 18025, "src": "59821:172:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17540, "nodeType": "Block", "src": "60062:95:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29", "id": 17532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "60106:29:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634", "typeString": "literal_string \"log(address,bool,bool,bool)\""}, "value": "log(address,bool,bool,bool)"}, {"id": 17533, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17520, "src": "60137:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17534, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17522, "src": "60141:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17535, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17524, "src": "60145:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17536, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17526, "src": "60149:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634", "typeString": "literal_string \"log(address,bool,bool,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17530, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "60082:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17531, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "60086:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "60082:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17537, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60082:70:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17529, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "60066:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17538, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60066:87:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17539, "nodeType": "ExpressionStatement", "src": "60066:87:49"}]}, "id": 17541, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "60005:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17527, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17520, "mutability": "mutable", "name": "p0", "nameLocation": "60017:2:49", "nodeType": "VariableDeclaration", "scope": 17541, "src": "60009:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17519, "name": "address", "nodeType": "ElementaryTypeName", "src": "60009:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17522, "mutability": "mutable", "name": "p1", "nameLocation": "60026:2:49", "nodeType": "VariableDeclaration", "scope": 17541, "src": "60021:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17521, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60021:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17524, "mutability": "mutable", "name": "p2", "nameLocation": "60035:2:49", "nodeType": "VariableDeclaration", "scope": 17541, "src": "60030:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17523, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60030:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17526, "mutability": "mutable", "name": "p3", "nameLocation": "60044:2:49", "nodeType": "VariableDeclaration", "scope": 17541, "src": "60039:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17525, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60039:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "60008:39:49"}, "returnParameters": {"id": 17528, "nodeType": "ParameterList", "parameters": [], "src": "60062:0:49"}, "scope": 18025, "src": "59996:161:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17563, "nodeType": "Block", "src": "60229:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329", "id": 17555, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "60273:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953", "typeString": "literal_string \"log(address,bool,bool,address)\""}, "value": "log(address,bool,bool,address)"}, {"id": 17556, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17543, "src": "60307:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17557, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17545, "src": "60311:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17558, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17547, "src": "60315:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17559, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17549, "src": "60319:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953", "typeString": "literal_string \"log(address,bool,bool,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17553, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "60249:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17554, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "60253:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "60249:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17560, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60249:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17552, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "60233:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17561, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60233:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17562, "nodeType": "ExpressionStatement", "src": "60233:90:49"}]}, "id": 17564, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "60169:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17550, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17543, "mutability": "mutable", "name": "p0", "nameLocation": "60181:2:49", "nodeType": "VariableDeclaration", "scope": 17564, "src": "60173:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17542, "name": "address", "nodeType": "ElementaryTypeName", "src": "60173:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17545, "mutability": "mutable", "name": "p1", "nameLocation": "60190:2:49", "nodeType": "VariableDeclaration", "scope": 17564, "src": "60185:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17544, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60185:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17547, "mutability": "mutable", "name": "p2", "nameLocation": "60199:2:49", "nodeType": "VariableDeclaration", "scope": 17564, "src": "60194:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17546, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60194:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17549, "mutability": "mutable", "name": "p3", "nameLocation": "60211:2:49", "nodeType": "VariableDeclaration", "scope": 17564, "src": "60203:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17548, "name": "address", "nodeType": "ElementaryTypeName", "src": "60203:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "60172:42:49"}, "returnParameters": {"id": 17551, "nodeType": "ParameterList", "parameters": [], "src": "60229:0:49"}, "scope": 18025, "src": "60160:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17586, "nodeType": "Block", "src": "60402:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7432353629", "id": 17578, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "60446:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039", "typeString": "literal_string \"log(address,bool,address,uint256)\""}, "value": "log(address,bool,address,uint256)"}, {"id": 17579, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17566, "src": "60483:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17580, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17568, "src": "60487:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17581, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17570, "src": "60491:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17582, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17572, "src": "60495:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039", "typeString": "literal_string \"log(address,bool,address,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17576, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "60422:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17577, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "60426:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "60422:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17583, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60422:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17575, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "60406:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17584, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60406:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17585, "nodeType": "ExpressionStatement", "src": "60406:93:49"}]}, "id": 17587, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "60339:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17573, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17566, "mutability": "mutable", "name": "p0", "nameLocation": "60351:2:49", "nodeType": "VariableDeclaration", "scope": 17587, "src": "60343:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17565, "name": "address", "nodeType": "ElementaryTypeName", "src": "60343:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17568, "mutability": "mutable", "name": "p1", "nameLocation": "60360:2:49", "nodeType": "VariableDeclaration", "scope": 17587, "src": "60355:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17567, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60355:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17570, "mutability": "mutable", "name": "p2", "nameLocation": "60372:2:49", "nodeType": "VariableDeclaration", "scope": 17587, "src": "60364:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17569, "name": "address", "nodeType": "ElementaryTypeName", "src": "60364:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17572, "mutability": "mutable", "name": "p3", "nameLocation": "60384:2:49", "nodeType": "VariableDeclaration", "scope": 17587, "src": "60376:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17571, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "60376:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "60342:45:49"}, "returnParameters": {"id": 17574, "nodeType": "ParameterList", "parameters": [], "src": "60402:0:49"}, "scope": 18025, "src": "60330:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17609, "nodeType": "Block", "src": "60584:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729", "id": 17601, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "60628:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453", "typeString": "literal_string \"log(address,bool,address,string)\""}, "value": "log(address,bool,address,string)"}, {"id": 17602, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17589, "src": "60664:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17603, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17591, "src": "60668:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17604, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17593, "src": "60672:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17605, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17595, "src": "60676:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453", "typeString": "literal_string \"log(address,bool,address,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17599, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "60604:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17600, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "60608:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "60604:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17606, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60604:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17598, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "60588:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17607, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60588:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17608, "nodeType": "ExpressionStatement", "src": "60588:92:49"}]}, "id": 17610, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "60515:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17596, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17589, "mutability": "mutable", "name": "p0", "nameLocation": "60527:2:49", "nodeType": "VariableDeclaration", "scope": 17610, "src": "60519:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17588, "name": "address", "nodeType": "ElementaryTypeName", "src": "60519:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17591, "mutability": "mutable", "name": "p1", "nameLocation": "60536:2:49", "nodeType": "VariableDeclaration", "scope": 17610, "src": "60531:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17590, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60531:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17593, "mutability": "mutable", "name": "p2", "nameLocation": "60548:2:49", "nodeType": "VariableDeclaration", "scope": 17610, "src": "60540:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17592, "name": "address", "nodeType": "ElementaryTypeName", "src": "60540:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17595, "mutability": "mutable", "name": "p3", "nameLocation": "60566:2:49", "nodeType": "VariableDeclaration", "scope": 17610, "src": "60552:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17594, "name": "string", "nodeType": "ElementaryTypeName", "src": "60552:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "60518:51:49"}, "returnParameters": {"id": 17597, "nodeType": "ParameterList", "parameters": [], "src": "60584:0:49"}, "scope": 18025, "src": "60506:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17632, "nodeType": "Block", "src": "60756:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29", "id": 17624, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "60800:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1", "typeString": "literal_string \"log(address,bool,address,bool)\""}, "value": "log(address,bool,address,bool)"}, {"id": 17625, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17612, "src": "60834:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17626, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17614, "src": "60838:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17627, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17616, "src": "60842:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17628, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17618, "src": "60846:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1", "typeString": "literal_string \"log(address,bool,address,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17622, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "60776:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17623, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "60780:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "60776:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17629, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60776:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17621, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "60760:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17630, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60760:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17631, "nodeType": "ExpressionStatement", "src": "60760:90:49"}]}, "id": 17633, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "60696:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17619, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17612, "mutability": "mutable", "name": "p0", "nameLocation": "60708:2:49", "nodeType": "VariableDeclaration", "scope": 17633, "src": "60700:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17611, "name": "address", "nodeType": "ElementaryTypeName", "src": "60700:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17614, "mutability": "mutable", "name": "p1", "nameLocation": "60717:2:49", "nodeType": "VariableDeclaration", "scope": 17633, "src": "60712:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17613, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60712:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17616, "mutability": "mutable", "name": "p2", "nameLocation": "60729:2:49", "nodeType": "VariableDeclaration", "scope": 17633, "src": "60721:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17615, "name": "address", "nodeType": "ElementaryTypeName", "src": "60721:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17618, "mutability": "mutable", "name": "p3", "nameLocation": "60738:2:49", "nodeType": "VariableDeclaration", "scope": 17633, "src": "60733:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17617, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60733:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "60699:42:49"}, "returnParameters": {"id": 17620, "nodeType": "ParameterList", "parameters": [], "src": "60756:0:49"}, "scope": 18025, "src": "60687:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17655, "nodeType": "Block", "src": "60929:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329", "id": 17647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "60973:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35", "typeString": "literal_string \"log(address,bool,address,address)\""}, "value": "log(address,bool,address,address)"}, {"id": 17648, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17635, "src": "61010:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17649, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17637, "src": "61014:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17650, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17639, "src": "61018:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17651, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17641, "src": "61022:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35", "typeString": "literal_string \"log(address,bool,address,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17645, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "60949:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17646, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "60953:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "60949:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17652, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60949:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17644, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "60933:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17653, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "60933:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17654, "nodeType": "ExpressionStatement", "src": "60933:93:49"}]}, "id": 17656, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "60866:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17642, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17635, "mutability": "mutable", "name": "p0", "nameLocation": "60878:2:49", "nodeType": "VariableDeclaration", "scope": 17656, "src": "60870:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17634, "name": "address", "nodeType": "ElementaryTypeName", "src": "60870:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17637, "mutability": "mutable", "name": "p1", "nameLocation": "60887:2:49", "nodeType": "VariableDeclaration", "scope": 17656, "src": "60882:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17636, "name": "bool", "nodeType": "ElementaryTypeName", "src": "60882:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17639, "mutability": "mutable", "name": "p2", "nameLocation": "60899:2:49", "nodeType": "VariableDeclaration", "scope": 17656, "src": "60891:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17638, "name": "address", "nodeType": "ElementaryTypeName", "src": "60891:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17641, "mutability": "mutable", "name": "p3", "nameLocation": "60911:2:49", "nodeType": "VariableDeclaration", "scope": 17656, "src": "60903:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17640, "name": "address", "nodeType": "ElementaryTypeName", "src": "60903:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "60869:45:49"}, "returnParameters": {"id": 17643, "nodeType": "ParameterList", "parameters": [], "src": "60929:0:49"}, "scope": 18025, "src": "60857:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17678, "nodeType": "Block", "src": "61108:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c75696e743235362c75696e7432353629", "id": 17670, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "61152:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25", "typeString": "literal_string \"log(address,address,uint256,uint256)\""}, "value": "log(address,address,uint256,uint256)"}, {"id": 17671, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17658, "src": "61192:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17672, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17660, "src": "61196:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17673, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17662, "src": "61200:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 17674, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17664, "src": "61204:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25", "typeString": "literal_string \"log(address,address,uint256,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17668, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "61128:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17669, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "61132:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "61128:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17675, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61128:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17667, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "61112:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17676, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61112:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17677, "nodeType": "ExpressionStatement", "src": "61112:96:49"}]}, "id": 17679, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "61042:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17665, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17658, "mutability": "mutable", "name": "p0", "nameLocation": "61054:2:49", "nodeType": "VariableDeclaration", "scope": 17679, "src": "61046:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17657, "name": "address", "nodeType": "ElementaryTypeName", "src": "61046:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17660, "mutability": "mutable", "name": "p1", "nameLocation": "61066:2:49", "nodeType": "VariableDeclaration", "scope": 17679, "src": "61058:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17659, "name": "address", "nodeType": "ElementaryTypeName", "src": "61058:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17662, "mutability": "mutable", "name": "p2", "nameLocation": "61078:2:49", "nodeType": "VariableDeclaration", "scope": 17679, "src": "61070:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17661, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "61070:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 17664, "mutability": "mutable", "name": "p3", "nameLocation": "61090:2:49", "nodeType": "VariableDeclaration", "scope": 17679, "src": "61082:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17663, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "61082:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "61045:48:49"}, "returnParameters": {"id": 17666, "nodeType": "ParameterList", "parameters": [], "src": "61108:0:49"}, "scope": 18025, "src": "61033:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17701, "nodeType": "Block", "src": "61296:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c75696e743235362c737472696e6729", "id": 17693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "61340:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343", "typeString": "literal_string \"log(address,address,uint256,string)\""}, "value": "log(address,address,uint256,string)"}, {"id": 17694, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17681, "src": "61379:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17695, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17683, "src": "61383:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17696, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17685, "src": "61387:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 17697, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17687, "src": "61391:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343", "typeString": "literal_string \"log(address,address,uint256,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17691, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "61316:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17692, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "61320:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "61316:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17698, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61316:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17690, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "61300:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17699, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61300:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17700, "nodeType": "ExpressionStatement", "src": "61300:95:49"}]}, "id": 17702, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "61224:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17688, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17681, "mutability": "mutable", "name": "p0", "nameLocation": "61236:2:49", "nodeType": "VariableDeclaration", "scope": 17702, "src": "61228:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17680, "name": "address", "nodeType": "ElementaryTypeName", "src": "61228:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17683, "mutability": "mutable", "name": "p1", "nameLocation": "61248:2:49", "nodeType": "VariableDeclaration", "scope": 17702, "src": "61240:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17682, "name": "address", "nodeType": "ElementaryTypeName", "src": "61240:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17685, "mutability": "mutable", "name": "p2", "nameLocation": "61260:2:49", "nodeType": "VariableDeclaration", "scope": 17702, "src": "61252:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17684, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "61252:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 17687, "mutability": "mutable", "name": "p3", "nameLocation": "61278:2:49", "nodeType": "VariableDeclaration", "scope": 17702, "src": "61264:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17686, "name": "string", "nodeType": "ElementaryTypeName", "src": "61264:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "61227:54:49"}, "returnParameters": {"id": 17689, "nodeType": "ParameterList", "parameters": [], "src": "61296:0:49"}, "scope": 18025, "src": "61215:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17724, "nodeType": "Block", "src": "61474:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c75696e743235362c626f6f6c29", "id": 17716, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "61518:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd", "typeString": "literal_string \"log(address,address,uint256,bool)\""}, "value": "log(address,address,uint256,bool)"}, {"id": 17717, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17704, "src": "61555:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17718, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17706, "src": "61559:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17719, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17708, "src": "61563:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 17720, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17710, "src": "61567:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd", "typeString": "literal_string \"log(address,address,uint256,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17714, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "61494:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17715, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "61498:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "61494:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17721, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61494:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17713, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "61478:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17722, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61478:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17723, "nodeType": "ExpressionStatement", "src": "61478:93:49"}]}, "id": 17725, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "61411:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17711, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17704, "mutability": "mutable", "name": "p0", "nameLocation": "61423:2:49", "nodeType": "VariableDeclaration", "scope": 17725, "src": "61415:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17703, "name": "address", "nodeType": "ElementaryTypeName", "src": "61415:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17706, "mutability": "mutable", "name": "p1", "nameLocation": "61435:2:49", "nodeType": "VariableDeclaration", "scope": 17725, "src": "61427:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17705, "name": "address", "nodeType": "ElementaryTypeName", "src": "61427:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17708, "mutability": "mutable", "name": "p2", "nameLocation": "61447:2:49", "nodeType": "VariableDeclaration", "scope": 17725, "src": "61439:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17707, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "61439:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 17710, "mutability": "mutable", "name": "p3", "nameLocation": "61456:2:49", "nodeType": "VariableDeclaration", "scope": 17725, "src": "61451:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17709, "name": "bool", "nodeType": "ElementaryTypeName", "src": "61451:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "61414:45:49"}, "returnParameters": {"id": 17712, "nodeType": "ParameterList", "parameters": [], "src": "61474:0:49"}, "scope": 18025, "src": "61402:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17747, "nodeType": "Block", "src": "61653:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c75696e743235362c6164647265737329", "id": 17739, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "61697:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b", "typeString": "literal_string \"log(address,address,uint256,address)\""}, "value": "log(address,address,uint256,address)"}, {"id": 17740, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17727, "src": "61737:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17741, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17729, "src": "61741:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17742, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17731, "src": "61745:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 17743, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17733, "src": "61749:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b", "typeString": "literal_string \"log(address,address,uint256,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17737, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "61673:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17738, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "61677:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "61673:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61673:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17736, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "61657:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17745, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61657:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17746, "nodeType": "ExpressionStatement", "src": "61657:96:49"}]}, "id": 17748, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "61587:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17734, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17727, "mutability": "mutable", "name": "p0", "nameLocation": "61599:2:49", "nodeType": "VariableDeclaration", "scope": 17748, "src": "61591:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17726, "name": "address", "nodeType": "ElementaryTypeName", "src": "61591:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17729, "mutability": "mutable", "name": "p1", "nameLocation": "61611:2:49", "nodeType": "VariableDeclaration", "scope": 17748, "src": "61603:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17728, "name": "address", "nodeType": "ElementaryTypeName", "src": "61603:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17731, "mutability": "mutable", "name": "p2", "nameLocation": "61623:2:49", "nodeType": "VariableDeclaration", "scope": 17748, "src": "61615:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17730, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "61615:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 17733, "mutability": "mutable", "name": "p3", "nameLocation": "61635:2:49", "nodeType": "VariableDeclaration", "scope": 17748, "src": "61627:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17732, "name": "address", "nodeType": "ElementaryTypeName", "src": "61627:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "61590:48:49"}, "returnParameters": {"id": 17735, "nodeType": "ParameterList", "parameters": [], "src": "61653:0:49"}, "scope": 18025, "src": "61578:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17770, "nodeType": "Block", "src": "61841:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c737472696e672c75696e7432353629", "id": 17762, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "61885:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5", "typeString": "literal_string \"log(address,address,string,uint256)\""}, "value": "log(address,address,string,uint256)"}, {"id": 17763, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17750, "src": "61924:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17764, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17752, "src": "61928:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17765, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17754, "src": "61932:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17766, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17756, "src": "61936:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5", "typeString": "literal_string \"log(address,address,string,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17760, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "61861:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17761, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "61865:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "61861:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17767, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61861:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17759, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "61845:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17768, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "61845:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17769, "nodeType": "ExpressionStatement", "src": "61845:95:49"}]}, "id": 17771, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "61769:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17757, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17750, "mutability": "mutable", "name": "p0", "nameLocation": "61781:2:49", "nodeType": "VariableDeclaration", "scope": 17771, "src": "61773:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17749, "name": "address", "nodeType": "ElementaryTypeName", "src": "61773:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17752, "mutability": "mutable", "name": "p1", "nameLocation": "61793:2:49", "nodeType": "VariableDeclaration", "scope": 17771, "src": "61785:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17751, "name": "address", "nodeType": "ElementaryTypeName", "src": "61785:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17754, "mutability": "mutable", "name": "p2", "nameLocation": "61811:2:49", "nodeType": "VariableDeclaration", "scope": 17771, "src": "61797:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17753, "name": "string", "nodeType": "ElementaryTypeName", "src": "61797:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17756, "mutability": "mutable", "name": "p3", "nameLocation": "61823:2:49", "nodeType": "VariableDeclaration", "scope": 17771, "src": "61815:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17755, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "61815:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "61772:54:49"}, "returnParameters": {"id": 17758, "nodeType": "ParameterList", "parameters": [], "src": "61841:0:49"}, "scope": 18025, "src": "61760:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17793, "nodeType": "Block", "src": "62034:102:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729", "id": 17785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "62078:36:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1", "typeString": "literal_string \"log(address,address,string,string)\""}, "value": "log(address,address,string,string)"}, {"id": 17786, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17773, "src": "62116:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17787, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17775, "src": "62120:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17788, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17777, "src": "62124:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17789, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17779, "src": "62128:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1", "typeString": "literal_string \"log(address,address,string,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17783, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "62054:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17784, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "62058:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "62054:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17790, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62054:77:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17782, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "62038:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17791, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62038:94:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17792, "nodeType": "ExpressionStatement", "src": "62038:94:49"}]}, "id": 17794, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "61956:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17780, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17773, "mutability": "mutable", "name": "p0", "nameLocation": "61968:2:49", "nodeType": "VariableDeclaration", "scope": 17794, "src": "61960:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17772, "name": "address", "nodeType": "ElementaryTypeName", "src": "61960:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17775, "mutability": "mutable", "name": "p1", "nameLocation": "61980:2:49", "nodeType": "VariableDeclaration", "scope": 17794, "src": "61972:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17774, "name": "address", "nodeType": "ElementaryTypeName", "src": "61972:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17777, "mutability": "mutable", "name": "p2", "nameLocation": "61998:2:49", "nodeType": "VariableDeclaration", "scope": 17794, "src": "61984:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17776, "name": "string", "nodeType": "ElementaryTypeName", "src": "61984:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17779, "mutability": "mutable", "name": "p3", "nameLocation": "62016:2:49", "nodeType": "VariableDeclaration", "scope": 17794, "src": "62002:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17778, "name": "string", "nodeType": "ElementaryTypeName", "src": "62002:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "61959:60:49"}, "returnParameters": {"id": 17781, "nodeType": "ParameterList", "parameters": [], "src": "62034:0:49"}, "scope": 18025, "src": "61947:189:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17816, "nodeType": "Block", "src": "62217:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29", "id": 17808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "62261:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd", "typeString": "literal_string \"log(address,address,string,bool)\""}, "value": "log(address,address,string,bool)"}, {"id": 17809, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17796, "src": "62297:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17810, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17798, "src": "62301:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17811, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17800, "src": "62305:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17812, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17802, "src": "62309:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd", "typeString": "literal_string \"log(address,address,string,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17806, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "62237:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17807, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "62241:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "62237:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17813, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62237:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17805, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "62221:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17814, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62221:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17815, "nodeType": "ExpressionStatement", "src": "62221:92:49"}]}, "id": 17817, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "62148:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17803, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17796, "mutability": "mutable", "name": "p0", "nameLocation": "62160:2:49", "nodeType": "VariableDeclaration", "scope": 17817, "src": "62152:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17795, "name": "address", "nodeType": "ElementaryTypeName", "src": "62152:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17798, "mutability": "mutable", "name": "p1", "nameLocation": "62172:2:49", "nodeType": "VariableDeclaration", "scope": 17817, "src": "62164:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17797, "name": "address", "nodeType": "ElementaryTypeName", "src": "62164:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17800, "mutability": "mutable", "name": "p2", "nameLocation": "62190:2:49", "nodeType": "VariableDeclaration", "scope": 17817, "src": "62176:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17799, "name": "string", "nodeType": "ElementaryTypeName", "src": "62176:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17802, "mutability": "mutable", "name": "p3", "nameLocation": "62199:2:49", "nodeType": "VariableDeclaration", "scope": 17817, "src": "62194:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17801, "name": "bool", "nodeType": "ElementaryTypeName", "src": "62194:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "62151:51:49"}, "returnParameters": {"id": 17804, "nodeType": "ParameterList", "parameters": [], "src": "62217:0:49"}, "scope": 18025, "src": "62139:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17839, "nodeType": "Block", "src": "62401:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329", "id": 17831, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "62445:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687", "typeString": "literal_string \"log(address,address,string,address)\""}, "value": "log(address,address,string,address)"}, {"id": 17832, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17819, "src": "62484:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17833, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17821, "src": "62488:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17834, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17823, "src": "62492:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 17835, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17825, "src": "62496:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687", "typeString": "literal_string \"log(address,address,string,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17829, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "62421:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17830, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "62425:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "62421:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17836, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62421:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17828, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "62405:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17837, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62405:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17838, "nodeType": "ExpressionStatement", "src": "62405:95:49"}]}, "id": 17840, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "62329:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17826, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17819, "mutability": "mutable", "name": "p0", "nameLocation": "62341:2:49", "nodeType": "VariableDeclaration", "scope": 17840, "src": "62333:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17818, "name": "address", "nodeType": "ElementaryTypeName", "src": "62333:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17821, "mutability": "mutable", "name": "p1", "nameLocation": "62353:2:49", "nodeType": "VariableDeclaration", "scope": 17840, "src": "62345:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17820, "name": "address", "nodeType": "ElementaryTypeName", "src": "62345:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17823, "mutability": "mutable", "name": "p2", "nameLocation": "62371:2:49", "nodeType": "VariableDeclaration", "scope": 17840, "src": "62357:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17822, "name": "string", "nodeType": "ElementaryTypeName", "src": "62357:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 17825, "mutability": "mutable", "name": "p3", "nameLocation": "62383:2:49", "nodeType": "VariableDeclaration", "scope": 17840, "src": "62375:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17824, "name": "address", "nodeType": "ElementaryTypeName", "src": "62375:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "62332:54:49"}, "returnParameters": {"id": 17827, "nodeType": "ParameterList", "parameters": [], "src": "62401:0:49"}, "scope": 18025, "src": "62320:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17862, "nodeType": "Block", "src": "62579:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7432353629", "id": 17854, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "62623:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671", "typeString": "literal_string \"log(address,address,bool,uint256)\""}, "value": "log(address,address,bool,uint256)"}, {"id": 17855, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17842, "src": "62660:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17856, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17844, "src": "62664:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17857, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17846, "src": "62668:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17858, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17848, "src": "62672:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671", "typeString": "literal_string \"log(address,address,bool,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17852, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "62599:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17853, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "62603:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "62599:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17859, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62599:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17851, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "62583:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17860, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62583:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17861, "nodeType": "ExpressionStatement", "src": "62583:93:49"}]}, "id": 17863, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "62516:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17849, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17842, "mutability": "mutable", "name": "p0", "nameLocation": "62528:2:49", "nodeType": "VariableDeclaration", "scope": 17863, "src": "62520:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17841, "name": "address", "nodeType": "ElementaryTypeName", "src": "62520:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17844, "mutability": "mutable", "name": "p1", "nameLocation": "62540:2:49", "nodeType": "VariableDeclaration", "scope": 17863, "src": "62532:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17843, "name": "address", "nodeType": "ElementaryTypeName", "src": "62532:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17846, "mutability": "mutable", "name": "p2", "nameLocation": "62549:2:49", "nodeType": "VariableDeclaration", "scope": 17863, "src": "62544:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17845, "name": "bool", "nodeType": "ElementaryTypeName", "src": "62544:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17848, "mutability": "mutable", "name": "p3", "nameLocation": "62561:2:49", "nodeType": "VariableDeclaration", "scope": 17863, "src": "62553:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17847, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "62553:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "62519:45:49"}, "returnParameters": {"id": 17850, "nodeType": "ParameterList", "parameters": [], "src": "62579:0:49"}, "scope": 18025, "src": "62507:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17885, "nodeType": "Block", "src": "62761:100:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729", "id": 17877, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "62805:34:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88", "typeString": "literal_string \"log(address,address,bool,string)\""}, "value": "log(address,address,bool,string)"}, {"id": 17878, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17865, "src": "62841:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17879, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17867, "src": "62845:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17880, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17869, "src": "62849:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17881, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17871, "src": "62853:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88", "typeString": "literal_string \"log(address,address,bool,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17875, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "62781:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17876, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "62785:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "62781:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17882, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62781:75:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17874, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "62765:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17883, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62765:92:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17884, "nodeType": "ExpressionStatement", "src": "62765:92:49"}]}, "id": 17886, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "62692:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17872, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17865, "mutability": "mutable", "name": "p0", "nameLocation": "62704:2:49", "nodeType": "VariableDeclaration", "scope": 17886, "src": "62696:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17864, "name": "address", "nodeType": "ElementaryTypeName", "src": "62696:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17867, "mutability": "mutable", "name": "p1", "nameLocation": "62716:2:49", "nodeType": "VariableDeclaration", "scope": 17886, "src": "62708:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17866, "name": "address", "nodeType": "ElementaryTypeName", "src": "62708:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17869, "mutability": "mutable", "name": "p2", "nameLocation": "62725:2:49", "nodeType": "VariableDeclaration", "scope": 17886, "src": "62720:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17868, "name": "bool", "nodeType": "ElementaryTypeName", "src": "62720:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17871, "mutability": "mutable", "name": "p3", "nameLocation": "62743:2:49", "nodeType": "VariableDeclaration", "scope": 17886, "src": "62729:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17870, "name": "string", "nodeType": "ElementaryTypeName", "src": "62729:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "62695:51:49"}, "returnParameters": {"id": 17873, "nodeType": "ParameterList", "parameters": [], "src": "62761:0:49"}, "scope": 18025, "src": "62683:178:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17908, "nodeType": "Block", "src": "62933:98:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29", "id": 17900, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "62977:32:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65", "typeString": "literal_string \"log(address,address,bool,bool)\""}, "value": "log(address,address,bool,bool)"}, {"id": 17901, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17888, "src": "63011:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17902, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17890, "src": "63015:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17903, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17892, "src": "63019:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17904, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17894, "src": "63023:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65", "typeString": "literal_string \"log(address,address,bool,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17898, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "62953:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17899, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "62957:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "62953:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17905, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62953:73:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17897, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "62937:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17906, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "62937:90:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17907, "nodeType": "ExpressionStatement", "src": "62937:90:49"}]}, "id": 17909, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "62873:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17895, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17888, "mutability": "mutable", "name": "p0", "nameLocation": "62885:2:49", "nodeType": "VariableDeclaration", "scope": 17909, "src": "62877:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17887, "name": "address", "nodeType": "ElementaryTypeName", "src": "62877:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17890, "mutability": "mutable", "name": "p1", "nameLocation": "62897:2:49", "nodeType": "VariableDeclaration", "scope": 17909, "src": "62889:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17889, "name": "address", "nodeType": "ElementaryTypeName", "src": "62889:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17892, "mutability": "mutable", "name": "p2", "nameLocation": "62906:2:49", "nodeType": "VariableDeclaration", "scope": 17909, "src": "62901:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17891, "name": "bool", "nodeType": "ElementaryTypeName", "src": "62901:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17894, "mutability": "mutable", "name": "p3", "nameLocation": "62915:2:49", "nodeType": "VariableDeclaration", "scope": 17909, "src": "62910:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17893, "name": "bool", "nodeType": "ElementaryTypeName", "src": "62910:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "62876:42:49"}, "returnParameters": {"id": 17896, "nodeType": "ParameterList", "parameters": [], "src": "62933:0:49"}, "scope": 18025, "src": "62864:167:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17931, "nodeType": "Block", "src": "63106:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329", "id": 17923, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "63150:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c", "typeString": "literal_string \"log(address,address,bool,address)\""}, "value": "log(address,address,bool,address)"}, {"id": 17924, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17911, "src": "63187:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17925, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17913, "src": "63191:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17926, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17915, "src": "63195:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, {"id": 17927, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17917, "src": "63199:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c", "typeString": "literal_string \"log(address,address,bool,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 17921, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "63126:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17922, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "63130:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "63126:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17928, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63126:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17920, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "63110:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17929, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63110:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17930, "nodeType": "ExpressionStatement", "src": "63110:93:49"}]}, "id": 17932, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "63043:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17918, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17911, "mutability": "mutable", "name": "p0", "nameLocation": "63055:2:49", "nodeType": "VariableDeclaration", "scope": 17932, "src": "63047:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17910, "name": "address", "nodeType": "ElementaryTypeName", "src": "63047:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17913, "mutability": "mutable", "name": "p1", "nameLocation": "63067:2:49", "nodeType": "VariableDeclaration", "scope": 17932, "src": "63059:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17912, "name": "address", "nodeType": "ElementaryTypeName", "src": "63059:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17915, "mutability": "mutable", "name": "p2", "nameLocation": "63076:2:49", "nodeType": "VariableDeclaration", "scope": 17932, "src": "63071:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17914, "name": "bool", "nodeType": "ElementaryTypeName", "src": "63071:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}, {"constant": false, "id": 17917, "mutability": "mutable", "name": "p3", "nameLocation": "63088:2:49", "nodeType": "VariableDeclaration", "scope": 17932, "src": "63080:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17916, "name": "address", "nodeType": "ElementaryTypeName", "src": "63080:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "63046:45:49"}, "returnParameters": {"id": 17919, "nodeType": "ParameterList", "parameters": [], "src": "63106:0:49"}, "scope": 18025, "src": "63034:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17954, "nodeType": "Block", "src": "63285:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c616464726573732c75696e7432353629", "id": 17946, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "63329:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577", "typeString": "literal_string \"log(address,address,address,uint256)\""}, "value": "log(address,address,address,uint256)"}, {"id": 17947, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17934, "src": "63369:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17948, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17936, "src": "63373:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17949, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17938, "src": "63377:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17950, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17940, "src": "63381:2:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577", "typeString": "literal_string \"log(address,address,address,uint256)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 17944, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "63305:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17945, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "63309:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "63305:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17951, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63305:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17943, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "63289:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17952, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63289:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17953, "nodeType": "ExpressionStatement", "src": "63289:96:49"}]}, "id": 17955, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "63219:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17941, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17934, "mutability": "mutable", "name": "p0", "nameLocation": "63231:2:49", "nodeType": "VariableDeclaration", "scope": 17955, "src": "63223:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17933, "name": "address", "nodeType": "ElementaryTypeName", "src": "63223:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17936, "mutability": "mutable", "name": "p1", "nameLocation": "63243:2:49", "nodeType": "VariableDeclaration", "scope": 17955, "src": "63235:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17935, "name": "address", "nodeType": "ElementaryTypeName", "src": "63235:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17938, "mutability": "mutable", "name": "p2", "nameLocation": "63255:2:49", "nodeType": "VariableDeclaration", "scope": 17955, "src": "63247:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17937, "name": "address", "nodeType": "ElementaryTypeName", "src": "63247:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17940, "mutability": "mutable", "name": "p3", "nameLocation": "63267:2:49", "nodeType": "VariableDeclaration", "scope": 17955, "src": "63259:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 17939, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "63259:7:49", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "63222:48:49"}, "returnParameters": {"id": 17942, "nodeType": "ParameterList", "parameters": [], "src": "63285:0:49"}, "scope": 18025, "src": "63210:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 17977, "nodeType": "Block", "src": "63473:103:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729", "id": 17969, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "63517:37:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025", "typeString": "literal_string \"log(address,address,address,string)\""}, "value": "log(address,address,address,string)"}, {"id": 17970, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17957, "src": "63556:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17971, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17959, "src": "63560:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17972, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17961, "src": "63564:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17973, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17963, "src": "63568:2:49", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025", "typeString": "literal_string \"log(address,address,address,string)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 17967, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "63493:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17968, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "63497:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "63493:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17974, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63493:78:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17966, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "63477:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17975, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63477:95:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17976, "nodeType": "ExpressionStatement", "src": "63477:95:49"}]}, "id": 17978, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "63401:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17964, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17957, "mutability": "mutable", "name": "p0", "nameLocation": "63413:2:49", "nodeType": "VariableDeclaration", "scope": 17978, "src": "63405:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17956, "name": "address", "nodeType": "ElementaryTypeName", "src": "63405:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17959, "mutability": "mutable", "name": "p1", "nameLocation": "63425:2:49", "nodeType": "VariableDeclaration", "scope": 17978, "src": "63417:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17958, "name": "address", "nodeType": "ElementaryTypeName", "src": "63417:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17961, "mutability": "mutable", "name": "p2", "nameLocation": "63437:2:49", "nodeType": "VariableDeclaration", "scope": 17978, "src": "63429:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17960, "name": "address", "nodeType": "ElementaryTypeName", "src": "63429:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17963, "mutability": "mutable", "name": "p3", "nameLocation": "63455:2:49", "nodeType": "VariableDeclaration", "scope": 17978, "src": "63441:16:49", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 17962, "name": "string", "nodeType": "ElementaryTypeName", "src": "63441:6:49", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "63404:54:49"}, "returnParameters": {"id": 17965, "nodeType": "ParameterList", "parameters": [], "src": "63473:0:49"}, "scope": 18025, "src": "63392:184:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 18000, "nodeType": "Block", "src": "63651:101:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29", "id": 17992, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "63695:35:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb", "typeString": "literal_string \"log(address,address,address,bool)\""}, "value": "log(address,address,address,bool)"}, {"id": 17993, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17980, "src": "63732:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17994, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17982, "src": "63736:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17995, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17984, "src": "63740:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 17996, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17986, "src": "63744:2:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb", "typeString": "literal_string \"log(address,address,address,bool)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_bool", "typeString": "bool"}], "expression": {"id": 17990, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "63671:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 17991, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "63675:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "63671:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 17997, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63671:76:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 17989, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "63655:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 17998, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63655:93:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 17999, "nodeType": "ExpressionStatement", "src": "63655:93:49"}]}, "id": 18001, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "63588:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 17987, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 17980, "mutability": "mutable", "name": "p0", "nameLocation": "63600:2:49", "nodeType": "VariableDeclaration", "scope": 18001, "src": "63592:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17979, "name": "address", "nodeType": "ElementaryTypeName", "src": "63592:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17982, "mutability": "mutable", "name": "p1", "nameLocation": "63612:2:49", "nodeType": "VariableDeclaration", "scope": 18001, "src": "63604:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17981, "name": "address", "nodeType": "ElementaryTypeName", "src": "63604:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17984, "mutability": "mutable", "name": "p2", "nameLocation": "63624:2:49", "nodeType": "VariableDeclaration", "scope": 18001, "src": "63616:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 17983, "name": "address", "nodeType": "ElementaryTypeName", "src": "63616:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 17986, "mutability": "mutable", "name": "p3", "nameLocation": "63633:2:49", "nodeType": "VariableDeclaration", "scope": 18001, "src": "63628:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 17985, "name": "bool", "nodeType": "ElementaryTypeName", "src": "63628:4:49", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "63591:45:49"}, "returnParameters": {"id": 17988, "nodeType": "ParameterList", "parameters": [], "src": "63651:0:49"}, "scope": 18025, "src": "63579:173:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"body": {"id": 18023, "nodeType": "Block", "src": "63830:104:49", "statements": [{"expression": {"arguments": [{"arguments": [{"hexValue": "6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329", "id": 18015, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "63874:38:49", "typeDescriptions": {"typeIdentifier": "t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5", "typeString": "literal_string \"log(address,address,address,address)\""}, "value": "log(address,address,address,address)"}, {"id": 18016, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18003, "src": "63914:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 18017, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18005, "src": "63918:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 18018, "name": "p2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18007, "src": "63922:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 18019, "name": "p3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18009, "src": "63926:2:49", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5", "typeString": "literal_string \"log(address,address,address,address)\""}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_address", "typeString": "address"}], "expression": {"id": 18013, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "63850:3:49", "typeDescriptions": {"typeIdentifier": "t_magic_abi", "typeString": "abi"}}, "id": 18014, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "63854:19:49", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "63850:23:49", "typeDescriptions": {"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)"}}, "id": 18020, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63850:79:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "id": 18012, "name": "_sendLogPayload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9985, "src": "63834:15:49", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) view"}}, "id": 18021, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "63834:96:49", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 18022, "nodeType": "ExpressionStatement", "src": "63834:96:49"}]}, "id": 18024, "implemented": true, "kind": "function", "modifiers": [], "name": "log", "nameLocation": "63764:3:49", "nodeType": "FunctionDefinition", "parameters": {"id": 18010, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 18003, "mutability": "mutable", "name": "p0", "nameLocation": "63776:2:49", "nodeType": "VariableDeclaration", "scope": 18024, "src": "63768:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 18002, "name": "address", "nodeType": "ElementaryTypeName", "src": "63768:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 18005, "mutability": "mutable", "name": "p1", "nameLocation": "63788:2:49", "nodeType": "VariableDeclaration", "scope": 18024, "src": "63780:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 18004, "name": "address", "nodeType": "ElementaryTypeName", "src": "63780:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 18007, "mutability": "mutable", "name": "p2", "nameLocation": "63800:2:49", "nodeType": "VariableDeclaration", "scope": 18024, "src": "63792:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 18006, "name": "address", "nodeType": "ElementaryTypeName", "src": "63792:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 18009, "mutability": "mutable", "name": "p3", "nameLocation": "63812:2:49", "nodeType": "VariableDeclaration", "scope": 18024, "src": "63804:10:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 18008, "name": "address", "nodeType": "ElementaryTypeName", "src": "63804:7:49", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "63767:48:49"}, "returnParameters": {"id": 18011, "nodeType": "ParameterList", "parameters": [], "src": "63830:0:49"}, "scope": 18025, "src": "63755:179:49", "stateMutability": "view", "virtual": false, "visibility": "internal"}], "scope": 18026, "src": "67:63870:49", "usedErrors": []}], "src": "32:63906:49"}}}, "sourceList": ["/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/access/Ownable.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/proxy/Clones.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/Address.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/Context.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/Strings.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/ERC721Test.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/IOUToken.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/LearnToEarn.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/LearnToEarnTest.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/MyContract.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/NFTReward.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/ReBakedDAO.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/TokenFactory.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/ILearnToEarn.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/INFTReward.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/IReBakedDAO.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/ITokenFactory.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/CollaboratorLibrary.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/ObserverLibrary.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/PackageLibrary.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/ProjectLibrary.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/Structs.sol", "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/hardhat/console.sol"], "contracts": {"/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:ReentrancyGuardUpgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol:IERC20Upgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol:IERC20PermitUpgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol:SafeERC20Upgradeable": {"srcmap": "740:3847:5:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;740:3847:5;;;;;;;;;;;;;;;;;", "srcmap-runtime": "740:3847:5:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e165e128eb3b0861a743517b065f5f6c2595b678a8b664c05e6ca19f1306949664736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e165e128eb3b0861a743517b065f5f6c2595b678a8b664c05e6ca19f1306949664736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable": {"srcmap": "751:14424:6:-:0;;;;;;;;;;;;;;;;;;;", "srcmap-runtime": "751:14424:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1987:344;;;;;;:::i;:::-;;:::i;:::-;;;565:14:50;;558:22;540:41;;528:2;513:18;1987:344:6;;;;;;;;2931:98;;;:::i;:::-;;;;;;;:::i;4407:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:50;;;1679:51;;1667:2;1652:18;4407:167:6;1533:203:50;3928:418:6;;;;;;:::i;:::-;;:::i;:::-;;5084:327;;;;;;:::i;:::-;;:::i;5477:179::-;;;;;;:::i;:::-;;:::i;2651:218::-;;;;;;:::i;:::-;;:::i;2390:204::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:50;;;2836:2;2821:18;2390:204:6;2702:177:50;3093:102:6;;;:::i;4641:153::-;;;;;;:::i;:::-;;:::i;5722:315::-;;;;;;:::i;:::-;;:::i;3261:276::-;;;;;;:::i;:::-;;:::i;4860:162::-;;;;;;:::i;:::-;;:::i;1987:344::-;2111:4;-1:-1:-1;;;;;;2146:51:6;;-1:-1:-1;;;2146:51:6;;:126;;-1:-1:-1;;;;;;;2213:59:6;;-1:-1:-1;;;2213:59:6;2146:126;:178;;;-1:-1:-1;;;;;;;;;;1168:51:15;;;2288:36:6;2127:197;1987:344;-1:-1:-1;;1987:344:6:o;2931:98::-;2985:13;3017:5;3010:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2931:98;:::o;4407:167::-;4483:7;4502:23;4517:7;4502:14;:23::i;:::-;-1:-1:-1;4543:24:6;;;;:15;:24;;;;;;-1:-1:-1;;;;;4543:24:6;;4407:167::o;3928:418::-;4008:13;4024:34;4050:7;4024:25;:34::i;:::-;4008:50;;4082:5;-1:-1:-1;;;;;4076:11:6;:2;-1:-1:-1;;;;;4076:11:6;;4068:57;;;;-1:-1:-1;;;4068:57:6;;5363:2:50;4068:57:6;;;5345:21:50;5402:2;5382:18;;;5375:30;5441:34;5421:18;;;5414:62;-1:-1:-1;;;5492:18:50;;;5485:31;5533:19;;4068:57:6;;;;;;;;;929:10:12;-1:-1:-1;;;;;4157:21:6;;;;:62;;-1:-1:-1;4182:37:6;4199:5;929:10:12;4860:162:6;:::i;4182:37::-;4136:171;;;;-1:-1:-1;;;4136:171:6;;5765:2:50;4136:171:6;;;5747:21:50;5804:2;5784:18;;;5777:30;5843:34;5823:18;;;5816:62;5914:32;5894:18;;;5887:60;5964:19;;4136:171:6;5563:426:50;4136:171:6;4318:21;4327:2;4331:7;4318:8;:21::i;:::-;3998:348;3928:418;;:::o;5084:327::-;5273:41;929:10:12;5306:7:6;5273:18;:41::i;:::-;5265:100;;;;-1:-1:-1;;;5265:100:6;;;;;;;:::i;:::-;5376:28;5386:4;5392:2;5396:7;5376:9;:28::i;5477:179::-;5610:39;5627:4;5633:2;5637:7;5610:39;;;;;;;;;;;;:16;:39::i;2651:218::-;2723:7;2758:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2758:16:6;;2784:56;;;;-1:-1:-1;;;2784:56:6;;6611:2:50;2784:56:6;;;6593:21:50;6650:2;6630:18;;;6623:30;-1:-1:-1;;;6669:18:50;;;6662:54;6733:18;;2784:56:6;6409:348:50;2390:204:6;2462:7;-1:-1:-1;;;;;2489:19:6;;2481:73;;;;-1:-1:-1;;;2481:73:6;;6964:2:50;2481:73:6;;;6946:21:50;7003:2;6983:18;;;6976:30;7042:34;7022:18;;;7015:62;-1:-1:-1;;;7093:18:50;;;7086:39;7142:19;;2481:73:6;6762:405:50;2481:73:6;-1:-1:-1;;;;;;2571:16:6;;;;;:9;:16;;;;;;;2390:204::o;3093:102::-;3149:13;3181:7;3174:14;;;;;:::i;4641:153::-;4735:52;929:10:12;4768:8:6;4778;4735:18;:52::i;:::-;4641:153;;:::o;5722:315::-;5890:41;929:10:12;5923:7:6;5890:18;:41::i;:::-;5882:100;;;;-1:-1:-1;;;5882:100:6;;;;;;;:::i;:::-;5992:38;6006:4;6012:2;6016:7;6025:4;5992:13;:38::i;:::-;5722:315;;;;:::o;3261:276::-;3334:13;3359:23;3374:7;3359:14;:23::i;:::-;3393:21;3417:10;3855:9;;;;;;;;;-1:-1:-1;3855:9:6;;;3779:92;3417:10;3393:34;;3468:1;3450:7;3444:21;:25;:86;;;;;;;;;;;;;;;;;3496:7;3505:18;:7;:16;:18::i;:::-;3479:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3444:86;3437:93;3261:276;-1:-1:-1;;;3261:276:6:o;4860:162::-;-1:-1:-1;;;;;4980:25:6;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4860:162::o;12173:133::-;7571:4;7594:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7594:16:6;12246:53;;;;-1:-1:-1;;;12246:53:6;;6611:2:50;12246:53:6;;;6593:21:50;6650:2;6630:18;;;6623:30;-1:-1:-1;;;6669:18:50;;;6662:54;6733:18;;12246:53:6;6409:348:50;12246:53:6;12173:133;:::o;11464:182::-;11538:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11538:29:6;-1:-1:-1;;;;;11538:29:6;;;;;;;;:24;;11591:34;11538:24;11591:25;:34::i;:::-;-1:-1:-1;;;;;11582:57:6;;;;;;;;;;;11464:182;;:::o;7789:272::-;7882:4;7898:13;7914:34;7940:7;7914:25;:34::i;:::-;7898:50;;7977:5;-1:-1:-1;;;;;7966:16:6;:7;-1:-1:-1;;;;;7966:16:6;;:52;;;;7986:32;8003:5;8010:7;7986:16;:32::i;:::-;7966:87;;;;8046:7;-1:-1:-1;;;;;8022:31:6;:20;8034:7;8022:11;:20::i;:::-;-1:-1:-1;;;;;8022:31:6;;7966:87;7958:96;7789:272;-1:-1:-1;;;;7789:272:6:o;10736:616::-;10901:4;-1:-1:-1;;;;;10863:42:6;:34;10889:7;10863:25;:34::i;:::-;-1:-1:-1;;;;;10863:42:6;;10855:92;;;;-1:-1:-1;;;10855:92:6;;7875:2:50;10855:92:6;;;7857:21:50;7914:2;7894:18;;;7887:30;7953:34;7933:18;;;7926:62;-1:-1:-1;;;8004:18:50;;;7997:35;8049:19;;10855:92:6;7673:401:50;10855:92:6;-1:-1:-1;;;;;10965:16:6;;10957:65;;;;-1:-1:-1;;;10957:65:6;;8281:2:50;10957:65:6;;;8263:21:50;8320:2;8300:18;;;8293:30;8359:34;8339:18;;;8332:62;-1:-1:-1;;;8410:18:50;;;8403:34;8454:19;;10957:65:6;8079:400:50;10957:65:6;11134:29;11151:1;11155:7;11134:8;:29::i;:::-;-1:-1:-1;;;;;11174:15:6;;;;;;:9;:15;;;;;:20;;11193:1;;11174:15;:20;;11193:1;;11174:20;:::i;:::-;;;;-1:-1:-1;;;;;;;11204:13:6;;;;;;:9;:13;;;;;:18;;11221:1;;11204:13;:18;;11221:1;;11204:18;:::i;:::-;;;;-1:-1:-1;;11232:16:6;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;11232:21:6;-1:-1:-1;;;;;11232:21:6;;;;;;;;;11269:27;;11232:16;;11269:27;;;;;;;3998:348;3928:418;;:::o;11782:307::-;11932:8;-1:-1:-1;;;;;11923:17:6;:5;-1:-1:-1;;;;;11923:17:6;;11915:55;;;;-1:-1:-1;;;11915:55:6;;9081:2:50;11915:55:6;;;9063:21:50;9120:2;9100:18;;;9093:30;9159:27;9139:18;;;9132:55;9204:18;;11915:55:6;8879:349:50;11915:55:6;-1:-1:-1;;;;;11980:25:6;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11980:46:6;;;;;;;;;;12041:41;;540::50;;;12041::6;;513:18:50;12041:41:6;;;;;;;11782:307;;;:::o;6898:305::-;7048:28;7058:4;7064:2;7068:7;7048:9;:28::i;:::-;7094:47;7117:4;7123:2;7127:7;7136:4;7094:22;:47::i;:::-;7086:110;;;;-1:-1:-1;;;7086:110:6;;;;;;;:::i;403:703:13:-;459:13;676:5;685:1;676:10;672:51;;-1:-1:-1;;702:10:13;;;;;;;;;;;;-1:-1:-1;;;702:10:13;;;;;403:703::o;672:51::-;747:5;732:12;786:75;793:9;;786:75;;818:8;;;;:::i;:::-;;-1:-1:-1;840:10:13;;-1:-1:-1;848:2:13;840:10;;:::i;:::-;;;786:75;;;870:19;902:6;892:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;892:17:13;;870:39;;919:150;926:10;;919:150;;952:11;962:1;952:11;;:::i;:::-;;-1:-1:-1;1020:10:13;1028:2;1020:5;:10;:::i;:::-;1007:24;;:2;:24;:::i;:::-;994:39;;977:6;984;977:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;977:56:13;;;;;;;;-1:-1:-1;1047:11:13;1056:2;1047:11;;:::i;:::-;;;919:150;;12858:853:6;13007:4;-1:-1:-1;;;;;13027:13:6;;1476:19:11;:23;13023:682:6;;13062:82;;-1:-1:-1;;;13062:82:6;;-1:-1:-1;;;;;13062:47:6;;;;;:82;;929:10:12;;13124:4:6;;13130:7;;13139:4;;13062:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13062:82:6;;;;;;;;-1:-1:-1;;13062:82:6;;;;;;;;;;;;:::i;:::-;;;13058:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13322:6;:13;13339:1;13322:18;13318:321;;13364:60;;-1:-1:-1;;;13364:60:6;;;;;;;:::i;13318:321::-;13591:6;13585:13;13576:6;13572:2;13568:15;13561:38;13058:595;-1:-1:-1;;;;;;13194:62:6;-1:-1:-1;;;13194:62:6;;-1:-1:-1;13187:69:6;;13023:682;-1:-1:-1;13690:4:6;12858:853;;;;;;:::o;14:131:50:-;-1:-1:-1;;;;;;88:32:50;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:50;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:50;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:50:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:50;;1348:180;-1:-1:-1;1348:180:50:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:50;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:50:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:50;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5994:410::-;6196:2;6178:21;;;6235:2;6215:18;;;6208:30;6274:34;6269:2;6254:18;;6247:62;-1:-1:-1;;;6340:2:50;6325:18;;6318:44;6394:3;6379:19;;5994:410::o;7172:496::-;7351:3;7389:6;7383:13;7405:66;7464:6;7459:3;7452:4;7444:6;7440:17;7405:66;:::i;:::-;7534:13;;7493:16;;;;7556:70;7534:13;7493:16;7603:4;7591:17;;7556:70;:::i;:::-;7642:20;;7172:496;-1:-1:-1;;;;7172:496:50:o;8484:127::-;8545:10;8540:3;8536:20;8533:1;8526:31;8576:4;8573:1;8566:15;8600:4;8597:1;8590:15;8616:128;8683:9;;;8704:11;;;8701:37;;;8718:18;;:::i;8749:125::-;8814:9;;;8835:10;;;8832:36;;;8848:18;;:::i;9233:414::-;9435:2;9417:21;;;9474:2;9454:18;;;9447:30;9513:34;9508:2;9493:18;;9486:62;-1:-1:-1;;;9579:2:50;9564:18;;9557:48;9637:3;9622:19;;9233:414::o;9652:135::-;9691:3;9712:17;;;9709:43;;9732:18;;:::i;:::-;-1:-1:-1;9779:1:50;9768:13;;9652:135::o;9792:127::-;9853:10;9848:3;9844:20;9841:1;9834:31;9884:4;9881:1;9874:15;9908:4;9905:1;9898:15;9924:120;9964:1;9990;9980:35;;9995:18;;:::i;:::-;-1:-1:-1;10029:9:50;;9924:120::o;10049:112::-;10081:1;10107;10097:35;;10112:18;;:::i;:::-;-1:-1:-1;10146:9:50;;10049:112::o;10166:127::-;10227:10;10222:3;10218:20;10215:1;10208:31;10258:4;10255:1;10248:15;10282:4;10279:1;10272:15;10298:489;-1:-1:-1;;;;;10567:15:50;;;10549:34;;10619:15;;10614:2;10599:18;;10592:43;10666:2;10651:18;;10644:34;;;10714:3;10709:2;10694:18;;10687:31;;;10492:4;;10735:46;;10761:19;;10753:6;10735:46;:::i;:::-;10727:54;10298:489;-1:-1:-1;;;;;;10298:489:50:o;10792:249::-;10861:6;10914:2;10902:9;10893:7;10889:23;10885:32;10882:52;;;10930:1;10927;10920:12;10882:52;10962:9;10956:16;10981:30;11005:5;10981:30;:::i", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "608060405234801561001057600080fd5b5061110b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610c32565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610c9f565b61012461011f366004610cb2565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610ce7565b61030a565b005b61014f61015f366004610d11565b610424565b61014f610172366004610d11565b610455565b610124610185366004610cb2565b610470565b61019d610198366004610d4d565b6104d0565b6040519081526020016100f3565b610104610556565b61014f6101c1366004610d68565b610565565b61014f6101d4366004610dba565b610574565b6101046101e7366004610cb2565b6105ac565b6100e76101fa366004610e96565b610620565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606065805461026090610ec9565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610ec9565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee8261064e565b506000908152606960205260409020546001600160a01b031690565b600061031582610470565b9050806001600160a01b0316836001600160a01b0316036103875760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103a357506103a38133610620565b6104155760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161037e565b61041f83836106b0565b505050565b61042e338261071e565b61044a5760405162461bcd60e51b815260040161037e90610f03565b61041f83838361077d565b61041f83838360405180602001604052806000815250610574565b6000818152606760205260408120546001600160a01b03168061024b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b60006001600160a01b03821661053a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161037e565b506001600160a01b031660009081526068602052604090205490565b60606066805461026090610ec9565b610570338383610919565b5050565b61057e338361071e565b61059a5760405162461bcd60e51b815260040161037e90610f03565b6105a6848484846109e7565b50505050565b60606105b78261064e565b60006105ce60408051602081019091526000815290565b905060008151116105ee5760405180602001604052806000815250610619565b806105f884610a1a565b604051602001610609929190610f51565b6040516020818303038152906040525b9392505050565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b6000818152606760205260409020546001600160a01b03166106ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b50565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e582610470565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072a83610470565b9050806001600160a01b0316846001600160a01b0316148061075157506107518185610620565b806107755750836001600160a01b031661076a846102e3565b6001600160a01b0316145b949350505050565b826001600160a01b031661079082610470565b6001600160a01b0316146107f45760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161037e565b6001600160a01b0382166108565760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161037e565b6108616000826106b0565b6001600160a01b038316600090815260686020526040812080546001929061088a908490610f96565b90915550506001600160a01b03821660009081526068602052604081208054600192906108b8908490610fa9565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361097a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161037e565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109f284848461077d565b6109fe84848484610b1b565b6105a65760405162461bcd60e51b815260040161037e90610fbc565b606081600003610a415750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610a6b5780610a558161100e565b9150610a649050600a8361103d565b9150610a45565b60008167ffffffffffffffff811115610a8657610a86610da4565b6040519080825280601f01601f191660200182016040528015610ab0576020820181803683370190505b5090505b841561077557610ac5600183610f96565b9150610ad2600a86611051565b610add906030610fa9565b60f81b818381518110610af257610af2611065565b60200101906001600160f81b031916908160001a905350610b14600a8661103d565b9450610ab4565b60006001600160a01b0384163b15610c1157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b5f90339089908890889060040161107b565b6020604051808303816000875af1925050508015610b9a575060408051601f3d908101601f19168201909252610b97918101906110b8565b60015b610bf7573d808015610bc8576040519150601f19603f3d011682016040523d82523d6000602084013e610bcd565b606091505b508051600003610bef5760405162461bcd60e51b815260040161037e90610fbc565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610775565b506001949350505050565b6001600160e01b0319811681146106ad57600080fd5b600060208284031215610c4457600080fd5b813561061981610c1c565b60005b83811015610c6a578181015183820152602001610c52565b50506000910152565b60008151808452610c8b816020860160208601610c4f565b601f01601f19169290920160200192915050565b6020815260006106196020830184610c73565b600060208284031215610cc457600080fd5b5035919050565b80356001600160a01b0381168114610ce257600080fd5b919050565b60008060408385031215610cfa57600080fd5b610d0383610ccb565b946020939093013593505050565b600080600060608486031215610d2657600080fd5b610d2f84610ccb565b9250610d3d60208501610ccb565b9150604084013590509250925092565b600060208284031215610d5f57600080fd5b61061982610ccb565b60008060408385031215610d7b57600080fd5b610d8483610ccb565b915060208301358015158114610d9957600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610dd057600080fd5b610dd985610ccb565b9350610de760208601610ccb565b925060408501359150606085013567ffffffffffffffff80821115610e0b57600080fd5b818701915087601f830112610e1f57600080fd5b813581811115610e3157610e31610da4565b604051601f8201601f19908116603f01168101908382118183101715610e5957610e59610da4565b816040528281528a6020848701011115610e7257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610ea957600080fd5b610eb283610ccb565b9150610ec060208401610ccb565b90509250929050565b600181811c90821680610edd57607f821691505b602082108103610efd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008351610f63818460208801610c4f565b835190830190610f77818360208801610c4f565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561024b5761024b610f80565b8082018082111561024b5761024b610f80565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001820161102057611020610f80565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261104c5761104c611027565b500490565b60008261106057611060611027565b500690565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906110ae90830184610c73565b9695505050505050565b6000602082840312156110ca57600080fd5b815161061981610c1c56fea264697066735822122026d21cd25ee907011cf5081bee77041a3e0d54377ffa5bce3d94ea3783baa26464736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610c32565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610c9f565b61012461011f366004610cb2565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610ce7565b61030a565b005b61014f61015f366004610d11565b610424565b61014f610172366004610d11565b610455565b610124610185366004610cb2565b610470565b61019d610198366004610d4d565b6104d0565b6040519081526020016100f3565b610104610556565b61014f6101c1366004610d68565b610565565b61014f6101d4366004610dba565b610574565b6101046101e7366004610cb2565b6105ac565b6100e76101fa366004610e96565b610620565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606065805461026090610ec9565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610ec9565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee8261064e565b506000908152606960205260409020546001600160a01b031690565b600061031582610470565b9050806001600160a01b0316836001600160a01b0316036103875760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103a357506103a38133610620565b6104155760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161037e565b61041f83836106b0565b505050565b61042e338261071e565b61044a5760405162461bcd60e51b815260040161037e90610f03565b61041f83838361077d565b61041f83838360405180602001604052806000815250610574565b6000818152606760205260408120546001600160a01b03168061024b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b60006001600160a01b03821661053a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161037e565b506001600160a01b031660009081526068602052604090205490565b60606066805461026090610ec9565b610570338383610919565b5050565b61057e338361071e565b61059a5760405162461bcd60e51b815260040161037e90610f03565b6105a6848484846109e7565b50505050565b60606105b78261064e565b60006105ce60408051602081019091526000815290565b905060008151116105ee5760405180602001604052806000815250610619565b806105f884610a1a565b604051602001610609929190610f51565b6040516020818303038152906040525b9392505050565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b6000818152606760205260409020546001600160a01b03166106ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b50565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e582610470565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072a83610470565b9050806001600160a01b0316846001600160a01b0316148061075157506107518185610620565b806107755750836001600160a01b031661076a846102e3565b6001600160a01b0316145b949350505050565b826001600160a01b031661079082610470565b6001600160a01b0316146107f45760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161037e565b6001600160a01b0382166108565760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161037e565b6108616000826106b0565b6001600160a01b038316600090815260686020526040812080546001929061088a908490610f96565b90915550506001600160a01b03821660009081526068602052604081208054600192906108b8908490610fa9565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361097a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161037e565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109f284848461077d565b6109fe84848484610b1b565b6105a65760405162461bcd60e51b815260040161037e90610fbc565b606081600003610a415750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610a6b5780610a558161100e565b9150610a649050600a8361103d565b9150610a45565b60008167ffffffffffffffff811115610a8657610a86610da4565b6040519080825280601f01601f191660200182016040528015610ab0576020820181803683370190505b5090505b841561077557610ac5600183610f96565b9150610ad2600a86611051565b610add906030610fa9565b60f81b818381518110610af257610af2611065565b60200101906001600160f81b031916908160001a905350610b14600a8661103d565b9450610ab4565b60006001600160a01b0384163b15610c1157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b5f90339089908890889060040161107b565b6020604051808303816000875af1925050508015610b9a575060408051601f3d908101601f19168201909252610b97918101906110b8565b60015b610bf7573d808015610bc8576040519150601f19603f3d011682016040523d82523d6000602084013e610bcd565b606091505b508051600003610bef5760405162461bcd60e51b815260040161037e90610fbc565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610775565b506001949350505050565b6001600160e01b0319811681146106ad57600080fd5b600060208284031215610c4457600080fd5b813561061981610c1c565b60005b83811015610c6a578181015183820152602001610c52565b50506000910152565b60008151808452610c8b816020860160208601610c4f565b601f01601f19169290920160200192915050565b6020815260006106196020830184610c73565b600060208284031215610cc457600080fd5b5035919050565b80356001600160a01b0381168114610ce257600080fd5b919050565b60008060408385031215610cfa57600080fd5b610d0383610ccb565b946020939093013593505050565b600080600060608486031215610d2657600080fd5b610d2f84610ccb565b9250610d3d60208501610ccb565b9150604084013590509250925092565b600060208284031215610d5f57600080fd5b61061982610ccb565b60008060408385031215610d7b57600080fd5b610d8483610ccb565b915060208301358015158114610d9957600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610dd057600080fd5b610dd985610ccb565b9350610de760208601610ccb565b925060408501359150606085013567ffffffffffffffff80821115610e0b57600080fd5b818701915087601f830112610e1f57600080fd5b813581811115610e3157610e31610da4565b604051601f8201601f19908116603f01168101908382118183101715610e5957610e59610da4565b816040528281528a6020848701011115610e7257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610ea957600080fd5b610eb283610ccb565b9150610ec060208401610ccb565b90509250929050565b600181811c90821680610edd57607f821691505b602082108103610efd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008351610f63818460208801610c4f565b835190830190610f77818360208801610c4f565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561024b5761024b610f80565b8082018082111561024b5761024b610f80565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001820161102057611020610f80565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261104c5761104c611027565b500490565b60008261106057611060611027565b500690565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906110ae90830184610c73565b9695505050505050565b6000602082840312156110ca57600080fd5b815161061981610c1c56fea264697066735822122026d21cd25ee907011cf5081bee77041a3e0d54377ffa5bce3d94ea3783baa26464736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol:IERC721ReceiverUpgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol:IERC721Upgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol:IERC721MetadataUpgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol:AddressUpgradeable": {"srcmap": "194:7172:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:7172:11;;;;;;;;;;;;;;;;;", "srcmap-runtime": "194:7172:11:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b8450de9442c0887020110ff364de8fdab82c4ec019c93283f4d51585d7f21f664736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b8450de9442c0887020110ff364de8fdab82c4ec019c93283f4d51585d7f21f664736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol:StringsUpgradeable": {"srcmap": "161:2246:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2246:13;;;;;;;;;;;;;;;;;", "srcmap-runtime": "161:2246:13:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122067d9896cecbf745108d0d8c3d2f705d23ad36aac36bc943cabe3bb8c18e4b68064736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122067d9896cecbf745108d0d8c3d2f705d23ad36aac36bc943cabe3bb8c18e4b68064736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol:ERC165CheckerUpgradeable": {"srcmap": "460:4447:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;460:4447:14;;;;;;;;;;;;;;;;;", "srcmap-runtime": "460:4447:14:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203803f371ecd16ee7c70312f2eb0fda83e1ef503ba1894e6be72c873168ea12da64736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203803f371ecd16ee7c70312f2eb0fda83e1ef503ba1894e6be72c873168ea12da64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/access/Ownable.sol:Ownable": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/proxy/Clones.sol:Clones": {"srcmap": "755:2946:18:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;755:2946:18;;;;;;;;;;;;;;;;;", "srcmap-runtime": "755:2946:18:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cdf79bd7fb0da099da785a4981880b8ed5d56c34b4f73816d8a51bfcad39081a64736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cdf79bd7fb0da099da785a4981880b8ed5d56c34b4f73816d8a51bfcad39081a64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20": {"srcmap": "1403:11214:19:-:0;;;1978:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2044:5;:13;2052:5;2044;:13;:::i;:::-;-1:-1:-1;2067:7:19;:17;2077:7;2067;:17;:::i;:::-;;1978:113;;1403:11214;;14:127:50;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:50;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:50;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:50:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:50;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:50;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:50;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:50;;;3992:26;3943:89;-1:-1:-1;;2747:1:50;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:50;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:50;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:50;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:50:o;:::-;1403:11214:19;;;;;;", "srcmap-runtime": "1403:11214:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:50;;1162:22;1144:41;;1132:2;1117:18;4433:197:19;1004:187:50;3244:106:19;3331:12;;3244:106;;;1342:25:50;;;1330:2;1315:18;3244:106:19;1196:177:50;5192:286:19;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;1853:36:50;;1841:2;1826:18;3093:91:19;1711:184:50;5873:234:19;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:19;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;2156:98::-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:28;4570:32:19;719:10:28;4586:7:19;4595:6;4570:8;:32::i;:::-;4619:4;4612:11;;;4433:197;;;;;:::o;5192:286::-;5319:4;719:10:28;5375:38:19;5391:4;719:10:28;5406:6:19;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:19;;5192:286;-1:-1:-1;;;;5192:286:19:o;5873:234::-;5961:4;719:10:28;6015:64:19;719:10:28;6031:7:19;6068:10;6040:25;719:10:28;6031:7:19;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:28;6687:4:19;6768:25;719:10:28;6785:7:19;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:19;;3170:2:50;6803:85:19;;;3152:21:50;3209:2;3189:18;;;3182:30;3248:34;3228:18;;;3221:62;-1:-1:-1;;;3299:18:50;;;3292:35;3344:19;;6803:85:19;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:28;3862:28:19;719:10:28;3879:2:19;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:19;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:19;;10233:68;;;;-1:-1:-1;;;10233:68:19;;3576:2:50;10233:68:19;;;3558:21:50;3615:2;3595:18;;;3588:30;3654:34;3634:18;;;3627:62;-1:-1:-1;;;3705:18:50;;;3698:34;3749:19;;10233:68:19;3374:400:50;10233:68:19;-1:-1:-1;;;;;10319:21:19;;10311:68;;;;-1:-1:-1;;;10311:68:19;;3981:2:50;10311:68:19;;;3963:21:50;4020:2;4000:18;;;3993:30;4059:34;4039:18;;;4032:62;-1:-1:-1;;;4110:18:50;;;4103:32;4152:19;;10311:68:19;3779:398:50;10311:68:19;-1:-1:-1;;;;;10390:18:19;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;1342:25:50;;;10441:32:19;;1315:18:50;10441:32:19;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:19;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:19;;4384:2:50;11010:68:19;;;4366:21:50;4423:2;4403:18;;;4396:30;4462:31;4442:18;;;4435:59;4511:18;;11010:68:19;4182:353:50;11010:68:19;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:19;;7593:68;;;;-1:-1:-1;;;7593:68:19;;4742:2:50;7593:68:19;;;4724:21:50;4781:2;4761:18;;;4754:30;4820:34;4800:18;;;4793:62;-1:-1:-1;;;4871:18:50;;;4864:35;4916:19;;7593:68:19;4540:401:50;7593:68:19;-1:-1:-1;;;;;7679:16:19;;7671:64;;;;-1:-1:-1;;;7671:64:19;;5148:2:50;7671:64:19;;;5130:21:50;5187:2;5167:18;;;5160:30;5226:34;5206:18;;;5199:62;-1:-1:-1;;;5277:18:50;;;5270:33;5320:19;;7671:64:19;4946:399:50;7671:64:19;-1:-1:-1;;;;;7817:15:19;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:19;;5552:2:50;7842:72:19;;;5534:21:50;5591:2;5571:18;;;5564:30;5630:34;5610:18;;;5603:62;-1:-1:-1;;;5681:18:50;;;5674:36;5727:19;;7842:72:19;5350:402:50;7842:72:19;-1:-1:-1;;;;;7948:15:19;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:19;8054:4;-1:-1:-1;;;;;8045:26:19;;8064:6;8045:26;;;;1342:25:50;;1330:2;1315:18;;1196:177;8045:26:19;;;;;;;;8082:37;11786:121;14:548:50;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:50;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:50:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;:::-;2041:39;1900:186;-1:-1:-1;;;1900:186:50:o;2091:260::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2259:29;2278:9;2259:29;:::i;:::-;2249:39;;2307:38;2341:2;2330:9;2326:18;2307:38;:::i;:::-;2297:48;;2091:260;;;;;:::o;2356:380::-;2435:1;2431:12;;;;2478;;;2499:61;;2553:4;2545:6;2541:17;2531:27;;2499:61;2606:2;2598:6;2595:14;2575:18;2572:38;2569:161;;2652:10;2647:3;2643:20;2640:1;2633:31;2687:4;2684:1;2677:15;2715:4;2712:1;2705:15;2569:161;;2356:380;;;:::o;2741:222::-;2806:9;;;2827:10;;;2824:133;;;2879:10;2874:3;2870:20;2867:1;2860:31;2914:4;2911:1;2904:15;2942:4;2939:1;2932:15", "abi": "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "60806040523480156200001157600080fd5b5060405162000b7038038062000b7083398101604081905262000034916200011f565b600362000042838262000218565b50600462000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61087c80620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c391906106c6565b60405180910390f35b6100df6100da366004610730565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f36600461075a565b61024c565b604051601281526020016100c3565b6100df610131366004610730565b610270565b6100f3610144366004610796565b6001600160a01b031660009081526020819052604090205490565b6100b6610292565b6100df610175366004610730565b6102a1565b6100df610188366004610730565b610321565b6100f361019b3660046107b8565b61032f565b6060600380546101af906107eb565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107eb565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561035a565b60019150505b92915050565b60003361025a85828561047e565b6102658585856104f8565b506001949350505050565b600033610240818585610283838361032f565b61028d9190610825565b61035a565b6060600480546101af906107eb565b600033816102af828661032f565b9050838110156103145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610265828686840361035a565b6000336102408185856104f8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161030b565b6001600160a01b03821661041d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161030b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061048a848461032f565b905060001981146104f257818110156104e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161030b565b6104f2848484840361035a565b50505050565b6001600160a01b03831661055c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161030b565b6001600160a01b0382166105be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161030b565b6001600160a01b038316600090815260208190526040902054818110156106365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161030b565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061066d908490610825565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106b991815260200190565b60405180910390a36104f2565b600060208083528351808285015260005b818110156106f3578581018301518582016040015282016106d7565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461072b57600080fd5b919050565b6000806040838503121561074357600080fd5b61074c83610714565b946020939093013593505050565b60008060006060848603121561076f57600080fd5b61077884610714565b925061078660208501610714565b9150604084013590509250925092565b6000602082840312156107a857600080fd5b6107b182610714565b9392505050565b600080604083850312156107cb57600080fd5b6107d483610714565b91506107e260208401610714565b90509250929050565b600181811c908216806107ff57607f821691505b60208210810361081f57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561024657634e487b7160e01b600052601160045260246000fdfea26469706673582212201977af5c3ad321f46487af4dfb1fbb65756e8cfe8ad8a2caeb1eed2b7a5ec59d64736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c391906106c6565b60405180910390f35b6100df6100da366004610730565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f36600461075a565b61024c565b604051601281526020016100c3565b6100df610131366004610730565b610270565b6100f3610144366004610796565b6001600160a01b031660009081526020819052604090205490565b6100b6610292565b6100df610175366004610730565b6102a1565b6100df610188366004610730565b610321565b6100f361019b3660046107b8565b61032f565b6060600380546101af906107eb565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107eb565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561035a565b60019150505b92915050565b60003361025a85828561047e565b6102658585856104f8565b506001949350505050565b600033610240818585610283838361032f565b61028d9190610825565b61035a565b6060600480546101af906107eb565b600033816102af828661032f565b9050838110156103145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610265828686840361035a565b6000336102408185856104f8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161030b565b6001600160a01b03821661041d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161030b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061048a848461032f565b905060001981146104f257818110156104e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161030b565b6104f2848484840361035a565b50505050565b6001600160a01b03831661055c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161030b565b6001600160a01b0382166105be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161030b565b6001600160a01b038316600090815260208190526040902054818110156106365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161030b565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061066d908490610825565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106b991815260200190565b60405180910390a36104f2565b600060208083528351808285015260005b818110156106f3578581018301518582016040015282016106d7565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461072b57600080fd5b919050565b6000806040838503121561074357600080fd5b61074c83610714565b946020939093013593505050565b60008060006060848603121561076f57600080fd5b61077884610714565b925061078660208501610714565b9150604084013590509250925092565b6000602082840312156107a857600080fd5b6107b182610714565b9392505050565b600080604083850312156107cb57600080fd5b6107d483610714565b91506107e260208401610714565b90509250929050565b600181811c908216806107ff57607f821691505b60208210810361081f57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561024657634e487b7160e01b600052601160045260246000fdfea26469706673582212201977af5c3ad321f46487af4dfb1fbb65756e8cfe8ad8a2caeb1eed2b7a5ec59d64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol:IERC20": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol:IERC20Metadata": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721": {"srcmap": "628:13718:22:-:0;;;1390:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1456:5;:13;1464:5;1456;:13;:::i;:::-;-1:-1:-1;1479:7:22;:17;1489:7;1479;:17;:::i;:::-;;1390:113;;628:13718;;14:127:50;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:50;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:50;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:50:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:50;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:50;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:50;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:50;;;3992:26;3943:89;-1:-1:-1;;2747:1:50;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:50;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:50;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:50;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:50:o;:::-;628:13718:22;;;;;;", "srcmap-runtime": "628:13718:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300;;;;;;:::i;:::-;;:::i;:::-;;;565:14:50;;558:22;540:41;;528:2;513:18;1570:300:22;;;;;;;;2470:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:50;;;1679:51;;1667:2;1652:18;3935:167:22;1533:203:50;3467:407:22;;;;;;:::i;:::-;;:::i;:::-;;4612:327;;;;;;:::i;:::-;;:::i;5005:179::-;;;;;;:::i;:::-;;:::i;2190:218::-;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:50;;;2836:2;2821:18;1929:204:22;2702:177:50;2632:102:22;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5250:315::-;;;;;;:::i;:::-;;:::i;2800:276::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;;:::i;1570:300::-;1672:4;-1:-1:-1;;;;;;1707:40:22;;-1:-1:-1;;;1707:40:22;;:104;;-1:-1:-1;;;;;;;1763:48:22;;-1:-1:-1;;;1763:48:22;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:30;;;1827:36:22;1688:175;1570:300;-1:-1:-1;;1570:300:22:o;2470:98::-;2524:13;2556:5;2549:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2470:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:22;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:22;;3935:167::o;3467:407::-;3547:13;3563:23;3578:7;3563:14;:23::i;:::-;3547:39;;3610:5;-1:-1:-1;;;;;3604:11:22;:2;-1:-1:-1;;;;;3604:11:22;;3596:57;;;;-1:-1:-1;;;3596:57:22;;5363:2:50;3596:57:22;;;5345:21:50;5402:2;5382:18;;;5375:30;5441:34;5421:18;;;5414:62;-1:-1:-1;;;5492:18:50;;;5485:31;5533:19;;3596:57:22;;;;;;;;;719:10:28;-1:-1:-1;;;;;3685:21:22;;;;:62;;-1:-1:-1;3710:37:22;3727:5;719:10:28;4388:162:22;:::i;3710:37::-;3664:171;;;;-1:-1:-1;;;3664:171:22;;5765:2:50;3664:171:22;;;5747:21:50;5804:2;5784:18;;;5777:30;5843:34;5823:18;;;5816:62;5914:32;5894:18;;;5887:60;5964:19;;3664:171:22;5563:426:50;3664:171:22;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3537:337;3467:407;;:::o;4612:327::-;4801:41;719:10:28;4834:7:22;4801:18;:41::i;:::-;4793:100;;;;-1:-1:-1;;;4793:100:22;;;;;;;:::i;:::-;4904:28;4914:4;4920:2;4924:7;4904:9;:28::i;5005:179::-;5138:39;5155:4;5161:2;5165:7;5138:39;;;;;;;;;;;;:16;:39::i;2190:218::-;2262:7;2297:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2297:16:22;;2323:56;;;;-1:-1:-1;;;2323:56:22;;6611:2:50;2323:56:22;;;6593:21:50;6650:2;6630:18;;;6623:30;-1:-1:-1;;;6669:18:50;;;6662:54;6733:18;;2323:56:22;6409:348:50;1929:204:22;2001:7;-1:-1:-1;;;;;2028:19:22;;2020:73;;;;-1:-1:-1;;;2020:73:22;;6964:2:50;2020:73:22;;;6946:21:50;7003:2;6983:18;;;6976:30;7042:34;7022:18;;;7015:62;-1:-1:-1;;;7093:18:50;;;7086:39;7142:19;;2020:73:22;6762:405:50;2020:73:22;-1:-1:-1;;;;;;2110:16:22;;;;;:9;:16;;;;;;;1929:204::o;2632:102::-;2688:13;2720:7;2713:14;;;;;:::i;4169:153::-;4263:52;719:10:28;4296:8:22;4306;4263:18;:52::i;:::-;4169:153;;:::o;5250:315::-;5418:41;719:10:28;5451:7:22;5418:18;:41::i;:::-;5410:100;;;;-1:-1:-1;;;5410:100:22;;;;;;;:::i;:::-;5520:38;5534:4;5540:2;5544:7;5553:4;5520:13;:38::i;:::-;5250:315;;;;:::o;2800:276::-;2873:13;2898:23;2913:7;2898:14;:23::i;:::-;2932:21;2956:10;3394:9;;;;;;;;;-1:-1:-1;3394:9:22;;;3318:92;2956:10;2932:34;;3007:1;2989:7;2983:21;:25;:86;;;;;;;;;;;;;;;;;3035:7;3044:18;:7;:16;:18::i;:::-;3018:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2983:86;2976:93;2800:276;-1:-1:-1;;;2800:276:22:o;4388:162::-;-1:-1:-1;;;;;4508:25:22;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162::o;11657:133::-;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:22;11730:53;;;;-1:-1:-1;;;11730:53:22;;6611:2:50;11730:53:22;;;6593:21:50;6650:2;6630:18;;;6623:30;-1:-1:-1;;;6669:18:50;;;6662:54;6733:18;;11730:53:22;6409:348:50;11730:53:22;11657:133;:::o;10959:171::-;11033:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11033:29:22;-1:-1:-1;;;;;11033:29:22;;;;;;;;:24;;11086:23;11033:24;11086:14;:23::i;:::-;-1:-1:-1;;;;;11077:46:22;;;;;;;;;;;10959:171;;:::o;7317:261::-;7410:4;7426:13;7442:23;7457:7;7442:14;:23::i;:::-;7426:39;;7494:5;-1:-1:-1;;;;;7483:16:22;:7;-1:-1:-1;;;;;7483:16:22;;:52;;;;7503:32;7520:5;7527:7;7503:16;:32::i;:::-;7483:87;;;;7563:7;-1:-1:-1;;;;;7539:31:22;:20;7551:7;7539:11;:20::i;:::-;-1:-1:-1;;;;;7539:31:22;;7483:87;7475:96;7317:261;-1:-1:-1;;;;7317:261:22:o;10242:605::-;10396:4;-1:-1:-1;;;;;10369:31:22;:23;10384:7;10369:14;:23::i;:::-;-1:-1:-1;;;;;10369:31:22;;10361:81;;;;-1:-1:-1;;;10361:81:22;;7875:2:50;10361:81:22;;;7857:21:50;7914:2;7894:18;;;7887:30;7953:34;7933:18;;;7926:62;-1:-1:-1;;;8004:18:50;;;7997:35;8049:19;;10361:81:22;7673:401:50;10361:81:22;-1:-1:-1;;;;;10460:16:22;;10452:65;;;;-1:-1:-1;;;10452:65:22;;8281:2:50;10452:65:22;;;8263:21:50;8320:2;8300:18;;;8293:30;8359:34;8339:18;;;8332:62;-1:-1:-1;;;8410:18:50;;;8403:34;8454:19;;10452:65:22;8079:400:50;10452:65:22;10629:29;10646:1;10650:7;10629:8;:29::i;:::-;-1:-1:-1;;;;;10669:15:22;;;;;;:9;:15;;;;;:20;;10688:1;;10669:15;:20;;10688:1;;10669:20;:::i;:::-;;;;-1:-1:-1;;;;;;;10699:13:22;;;;;;:9;:13;;;;;:18;;10716:1;;10699:13;:18;;10716:1;;10699:18;:::i;:::-;;;;-1:-1:-1;;10727:16:22;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10727:21:22;-1:-1:-1;;;;;10727:21:22;;;;;;;;;10764:27;;10727:16;;10764:27;;;;;;;3537:337;3467:407;;:::o;11266:307::-;11416:8;-1:-1:-1;;;;;11407:17:22;:5;-1:-1:-1;;;;;11407:17:22;;11399:55;;;;-1:-1:-1;;;11399:55:22;;9081:2:50;11399:55:22;;;9063:21:50;9120:2;9100:18;;;9093:30;9159:27;9139:18;;;9132:55;9204:18;;11399:55:22;8879:349:50;11399:55:22;-1:-1:-1;;;;;11464:25:22;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11464:46:22;;;;;;;;;;11525:41;;540::50;;;11525::22;;513:18:50;11525:41:22;;;;;;;11266:307;;;:::o;6426:305::-;6576:28;6586:4;6592:2;6596:7;6576:9;:28::i;:::-;6622:47;6645:4;6651:2;6655:7;6664:4;6622:22;:47::i;:::-;6614:110;;;;-1:-1:-1;;;6614:110:22;;;;;;;:::i;392:703:29:-;448:13;665:5;674:1;665:10;661:51;;-1:-1:-1;;691:10:29;;;;;;;;;;;;-1:-1:-1;;;691:10:29;;;;;392:703::o;661:51::-;736:5;721:12;775:75;782:9;;775:75;;807:8;;;;:::i;:::-;;-1:-1:-1;829:10:29;;-1:-1:-1;837:2:29;829:10;;:::i;:::-;;;775:75;;;859:19;891:6;881:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;881:17:29;;859:39;;908:150;915:10;;908:150;;941:11;951:1;941:11;;:::i;:::-;;-1:-1:-1;1009:10:29;1017:2;1009:5;:10;:::i;:::-;996:24;;:2;:24;:::i;:::-;983:39;;966:6;973;966:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;966:56:29;;;;;;;;-1:-1:-1;1036:11:29;1045:2;1036:11;;:::i;:::-;;;908:150;;12342:831:22;12491:4;-1:-1:-1;;;;;12511:13:22;;1465:19:27;:23;12507:660:22;;12546:71;;-1:-1:-1;;;12546:71:22;;-1:-1:-1;;;;;12546:36:22;;;;;:71;;719:10:28;;12597:4:22;;12603:7;;12612:4;;12546:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12546:71:22;;;;;;;;-1:-1:-1;;12546:71:22;;;;;;;;;;;;:::i;:::-;;;12542:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12784:6;:13;12801:1;12784:18;12780:321;;12826:60;;-1:-1:-1;;;12826:60:22;;;;;;;:::i;12780:321::-;13053:6;13047:13;13038:6;13034:2;13030:15;13023:38;12542:573;-1:-1:-1;;;;;;12667:51:22;-1:-1:-1;;;12667:51:22;;-1:-1:-1;12660:58:22;;12507:660;-1:-1:-1;13152:4:22;12342:831;;;;;;:::o;14:131:50:-;-1:-1:-1;;;;;;88:32:50;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:50;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:50;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:50:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:50;;1348:180;-1:-1:-1;1348:180:50:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:50;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:50:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:50;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5994:410::-;6196:2;6178:21;;;6235:2;6215:18;;;6208:30;6274:34;6269:2;6254:18;;6247:62;-1:-1:-1;;;6340:2:50;6325:18;;6318:44;6394:3;6379:19;;5994:410::o;7172:496::-;7351:3;7389:6;7383:13;7405:66;7464:6;7459:3;7452:4;7444:6;7440:17;7405:66;:::i;:::-;7534:13;;7493:16;;;;7556:70;7534:13;7493:16;7603:4;7591:17;;7556:70;:::i;:::-;7642:20;;7172:496;-1:-1:-1;;;;7172:496:50:o;8484:127::-;8545:10;8540:3;8536:20;8533:1;8526:31;8576:4;8573:1;8566:15;8600:4;8597:1;8590:15;8616:128;8683:9;;;8704:11;;;8701:37;;;8718:18;;:::i;8749:125::-;8814:9;;;8835:10;;;8832:36;;;8848:18;;:::i;9233:414::-;9435:2;9417:21;;;9474:2;9454:18;;;9447:30;9513:34;9508:2;9493:18;;9486:62;-1:-1:-1;;;9579:2:50;9564:18;;9557:48;9637:3;9622:19;;9233:414::o;9652:135::-;9691:3;9712:17;;;9709:43;;9732:18;;:::i;:::-;-1:-1:-1;9779:1:50;9768:13;;9652:135::o;9792:127::-;9853:10;9848:3;9844:20;9841:1;9834:31;9884:4;9881:1;9874:15;9908:4;9905:1;9898:15;9924:120;9964:1;9990;9980:35;;9995:18;;:::i;:::-;-1:-1:-1;10029:9:50;;9924:120::o;10049:112::-;10081:1;10107;10097:35;;10112:18;;:::i;:::-;-1:-1:-1;10146:9:50;;10049:112::o;10166:127::-;10227:10;10222:3;10218:20;10215:1;10208:31;10258:4;10255:1;10248:15;10282:4;10279:1;10272:15;10298:489;-1:-1:-1;;;;;10567:15:50;;;10549:34;;10619:15;;10614:2;10599:18;;10592:43;10666:2;10651:18;;10644:34;;;10714:3;10709:2;10694:18;;10687:31;;;10492:4;;10735:46;;10761:19;;10753:6;10735:46;:::i;:::-;10727:54;10298:489;-1:-1:-1;;;;;;10298:489:50:o;10792:249::-;10861:6;10914:2;10902:9;10893:7;10889:23;10885:32;10882:52;;;10930:1;10927;10920:12;10882:52;10962:9;10956:16;10981:30;11005:5;10981:30;:::i", "abi": "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "60806040523480156200001157600080fd5b50604051620013ff380380620013ff83398101604081905262000034916200011f565b600062000042838262000218565b50600162000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61110b80620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610c32565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610c9f565b61012461011f366004610cb2565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610ce7565b61030a565b005b61014f61015f366004610d11565b610424565b61014f610172366004610d11565b610455565b610124610185366004610cb2565b610470565b61019d610198366004610d4d565b6104d0565b6040519081526020016100f3565b610104610556565b61014f6101c1366004610d68565b610565565b61014f6101d4366004610dba565b610574565b6101046101e7366004610cb2565b6105ac565b6100e76101fa366004610e96565b610620565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461026090610ec9565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610ec9565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee8261064e565b506000908152600460205260409020546001600160a01b031690565b600061031582610470565b9050806001600160a01b0316836001600160a01b0316036103875760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103a357506103a38133610620565b6104155760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161037e565b61041f83836106b0565b505050565b61042e338261071e565b61044a5760405162461bcd60e51b815260040161037e90610f03565b61041f83838361077d565b61041f83838360405180602001604052806000815250610574565b6000818152600260205260408120546001600160a01b03168061024b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b60006001600160a01b03821661053a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161037e565b506001600160a01b031660009081526003602052604090205490565b60606001805461026090610ec9565b610570338383610919565b5050565b61057e338361071e565b61059a5760405162461bcd60e51b815260040161037e90610f03565b6105a6848484846109e7565b50505050565b60606105b78261064e565b60006105ce60408051602081019091526000815290565b905060008151116105ee5760405180602001604052806000815250610619565b806105f884610a1a565b604051602001610609929190610f51565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260409020546001600160a01b03166106ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e582610470565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072a83610470565b9050806001600160a01b0316846001600160a01b0316148061075157506107518185610620565b806107755750836001600160a01b031661076a846102e3565b6001600160a01b0316145b949350505050565b826001600160a01b031661079082610470565b6001600160a01b0316146107f45760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161037e565b6001600160a01b0382166108565760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161037e565b6108616000826106b0565b6001600160a01b038316600090815260036020526040812080546001929061088a908490610f96565b90915550506001600160a01b03821660009081526003602052604081208054600192906108b8908490610fa9565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361097a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161037e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109f284848461077d565b6109fe84848484610b1b565b6105a65760405162461bcd60e51b815260040161037e90610fbc565b606081600003610a415750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610a6b5780610a558161100e565b9150610a649050600a8361103d565b9150610a45565b60008167ffffffffffffffff811115610a8657610a86610da4565b6040519080825280601f01601f191660200182016040528015610ab0576020820181803683370190505b5090505b841561077557610ac5600183610f96565b9150610ad2600a86611051565b610add906030610fa9565b60f81b818381518110610af257610af2611065565b60200101906001600160f81b031916908160001a905350610b14600a8661103d565b9450610ab4565b60006001600160a01b0384163b15610c1157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b5f90339089908890889060040161107b565b6020604051808303816000875af1925050508015610b9a575060408051601f3d908101601f19168201909252610b97918101906110b8565b60015b610bf7573d808015610bc8576040519150601f19603f3d011682016040523d82523d6000602084013e610bcd565b606091505b508051600003610bef5760405162461bcd60e51b815260040161037e90610fbc565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610775565b506001949350505050565b6001600160e01b0319811681146106ad57600080fd5b600060208284031215610c4457600080fd5b813561061981610c1c565b60005b83811015610c6a578181015183820152602001610c52565b50506000910152565b60008151808452610c8b816020860160208601610c4f565b601f01601f19169290920160200192915050565b6020815260006106196020830184610c73565b600060208284031215610cc457600080fd5b5035919050565b80356001600160a01b0381168114610ce257600080fd5b919050565b60008060408385031215610cfa57600080fd5b610d0383610ccb565b946020939093013593505050565b600080600060608486031215610d2657600080fd5b610d2f84610ccb565b9250610d3d60208501610ccb565b9150604084013590509250925092565b600060208284031215610d5f57600080fd5b61061982610ccb565b60008060408385031215610d7b57600080fd5b610d8483610ccb565b915060208301358015158114610d9957600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610dd057600080fd5b610dd985610ccb565b9350610de760208601610ccb565b925060408501359150606085013567ffffffffffffffff80821115610e0b57600080fd5b818701915087601f830112610e1f57600080fd5b813581811115610e3157610e31610da4565b604051601f8201601f19908116603f01168101908382118183101715610e5957610e59610da4565b816040528281528a6020848701011115610e7257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610ea957600080fd5b610eb283610ccb565b9150610ec060208401610ccb565b90509250929050565b600181811c90821680610edd57607f821691505b602082108103610efd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008351610f63818460208801610c4f565b835190830190610f77818360208801610c4f565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561024b5761024b610f80565b8082018082111561024b5761024b610f80565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001820161102057611020610f80565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261104c5761104c611027565b500490565b60008261106057611060611027565b500690565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906110ae90830184610c73565b9695505050505050565b6000602082840312156110ca57600080fd5b815161061981610c1c56fea2646970667358221220567193447a7f17c9f9f67d7fbebdb51ff66d09049c855c6c8dd449d64c94e19764736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610c32565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610c9f565b61012461011f366004610cb2565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610ce7565b61030a565b005b61014f61015f366004610d11565b610424565b61014f610172366004610d11565b610455565b610124610185366004610cb2565b610470565b61019d610198366004610d4d565b6104d0565b6040519081526020016100f3565b610104610556565b61014f6101c1366004610d68565b610565565b61014f6101d4366004610dba565b610574565b6101046101e7366004610cb2565b6105ac565b6100e76101fa366004610e96565b610620565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461026090610ec9565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610ec9565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee8261064e565b506000908152600460205260409020546001600160a01b031690565b600061031582610470565b9050806001600160a01b0316836001600160a01b0316036103875760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103a357506103a38133610620565b6104155760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161037e565b61041f83836106b0565b505050565b61042e338261071e565b61044a5760405162461bcd60e51b815260040161037e90610f03565b61041f83838361077d565b61041f83838360405180602001604052806000815250610574565b6000818152600260205260408120546001600160a01b03168061024b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b60006001600160a01b03821661053a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161037e565b506001600160a01b031660009081526003602052604090205490565b60606001805461026090610ec9565b610570338383610919565b5050565b61057e338361071e565b61059a5760405162461bcd60e51b815260040161037e90610f03565b6105a6848484846109e7565b50505050565b60606105b78261064e565b60006105ce60408051602081019091526000815290565b905060008151116105ee5760405180602001604052806000815250610619565b806105f884610a1a565b604051602001610609929190610f51565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260409020546001600160a01b03166106ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e582610470565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072a83610470565b9050806001600160a01b0316846001600160a01b0316148061075157506107518185610620565b806107755750836001600160a01b031661076a846102e3565b6001600160a01b0316145b949350505050565b826001600160a01b031661079082610470565b6001600160a01b0316146107f45760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161037e565b6001600160a01b0382166108565760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161037e565b6108616000826106b0565b6001600160a01b038316600090815260036020526040812080546001929061088a908490610f96565b90915550506001600160a01b03821660009081526003602052604081208054600192906108b8908490610fa9565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361097a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161037e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109f284848461077d565b6109fe84848484610b1b565b6105a65760405162461bcd60e51b815260040161037e90610fbc565b606081600003610a415750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610a6b5780610a558161100e565b9150610a649050600a8361103d565b9150610a45565b60008167ffffffffffffffff811115610a8657610a86610da4565b6040519080825280601f01601f191660200182016040528015610ab0576020820181803683370190505b5090505b841561077557610ac5600183610f96565b9150610ad2600a86611051565b610add906030610fa9565b60f81b818381518110610af257610af2611065565b60200101906001600160f81b031916908160001a905350610b14600a8661103d565b9450610ab4565b60006001600160a01b0384163b15610c1157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b5f90339089908890889060040161107b565b6020604051808303816000875af1925050508015610b9a575060408051601f3d908101601f19168201909252610b97918101906110b8565b60015b610bf7573d808015610bc8576040519150601f19603f3d011682016040523d82523d6000602084013e610bcd565b606091505b508051600003610bef5760405162461bcd60e51b815260040161037e90610fbc565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610775565b506001949350505050565b6001600160e01b0319811681146106ad57600080fd5b600060208284031215610c4457600080fd5b813561061981610c1c565b60005b83811015610c6a578181015183820152602001610c52565b50506000910152565b60008151808452610c8b816020860160208601610c4f565b601f01601f19169290920160200192915050565b6020815260006106196020830184610c73565b600060208284031215610cc457600080fd5b5035919050565b80356001600160a01b0381168114610ce257600080fd5b919050565b60008060408385031215610cfa57600080fd5b610d0383610ccb565b946020939093013593505050565b600080600060608486031215610d2657600080fd5b610d2f84610ccb565b9250610d3d60208501610ccb565b9150604084013590509250925092565b600060208284031215610d5f57600080fd5b61061982610ccb565b60008060408385031215610d7b57600080fd5b610d8483610ccb565b915060208301358015158114610d9957600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610dd057600080fd5b610dd985610ccb565b9350610de760208601610ccb565b925060408501359150606085013567ffffffffffffffff80821115610e0b57600080fd5b818701915087601f830112610e1f57600080fd5b813581811115610e3157610e31610da4565b604051601f8201601f19908116603f01168101908382118183101715610e5957610e59610da4565b816040528281528a6020848701011115610e7257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610ea957600080fd5b610eb283610ccb565b9150610ec060208401610ccb565b90509250929050565b600181811c90821680610edd57607f821691505b602082108103610efd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008351610f63818460208801610c4f565b835190830190610f77818360208801610c4f565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561024b5761024b610f80565b8082018082111561024b5761024b610f80565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001820161102057611020610f80565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261104c5761104c611027565b500490565b60008261106057611060611027565b500690565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906110ae90830184610c73565b9695505050505050565b6000602082840312156110ca57600080fd5b815161061981610c1c56fea2646970667358221220567193447a7f17c9f9f67d7fbebdb51ff66d09049c855c6c8dd449d64c94e19764736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol:IERC721": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol:IERC721Receiver": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol:IERC721Metadata": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/Address.sol:Address": {"srcmap": "194:8111:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8111:27;;;;;;;;;;;;;;;;;", "srcmap-runtime": "194:8111:27:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206af4a6c2ea199a402f324b33d83781e045280f151b8e8f13fc6b5ffdb7db88cd64736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206af4a6c2ea199a402f324b33d83781e045280f151b8e8f13fc6b5ffdb7db88cd64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/Context.sol:Context": {"srcmap": "", "srcmap-runtime": "", "abi": "[]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/Strings.sol:Strings": {"srcmap": "161:2235:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:29;;;;;;;;;;;;;;;;;", "srcmap-runtime": "161:2235:29:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200b303b02ccdf79afcb75435de6b23bc4ab5c08d9d37aa26d6fb1f7cde1a0a85864736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200b303b02ccdf79afcb75435de6b23bc4ab5c08d9d37aa26d6fb1f7cde1a0a85864736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol:ERC165": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol:IERC165": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/ERC721Test.sol:ERC721Test": {"srcmap": "341:873:32:-:0;;;691:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;752:4;758:6;1456:5:22;:13;752:4:32;1456:5:22;:13;:::i;:::-;-1:-1:-1;1479:7:22;:17;1489:7;1479;:17;:::i;:::-;;1390:113;;936:32:17;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;691:77:32;;341:873;;640:96:28;719:10;;640:96::o;2433:187:17:-;2525:6;;;-1:-1:-1;;;;;2541:17:17;;;-1:-1:-1;;;;;;2541:17:17;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;14:127:50:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:50;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:50;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:50:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:50;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:50;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:50;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:50;;;3992:26;3943:89;-1:-1:-1;;2747:1:50;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:50;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:50;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:50;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:50:o;:::-;341:873:32;;;;;;", "srcmap-runtime": "341:873:32:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300:22;;;;;;:::i;:::-;;:::i;:::-;;;565:14:50;;558:22;540:41;;528:2;513:18;1570:300:22;;;;;;;;2470:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:50;;;1679:51;;1667:2;1652:18;3935:167:22;1533:203:50;3467:407:22;;;;;;:::i;:::-;;:::i;:::-;;4612:327;;;;;;:::i;:::-;;:::i;5005:179::-;;;;;;:::i;:::-;;:::i;2190:218::-;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:50;;;2836:2;2821:18;1929:204:22;2702:177:50;522:23:32;;;;;;1831:101:17;;;:::i;1201:85::-;1273:6;;-1:-1:-1;;;;;1273:6:17;1201:85;;2632:102:22;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5250:315::-;;;;;;:::i;:::-;;:::i;482:608:25:-;;;;;;:::i;:::-;;:::i;4388:162:22:-;;;;;;:::i;:::-;;:::i;943:269:32:-;;;;;;:::i;:::-;;:::i;2081:198:17:-;;;;;;:::i;:::-;;:::i;1570:300:22:-;1672:4;-1:-1:-1;;;;;;1707:40:22;;-1:-1:-1;;;1707:40:22;;:104;;-1:-1:-1;;;;;;;1763:48:22;;-1:-1:-1;;;1763:48:22;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:30;;;1827:36:22;1688:175;1570:300;-1:-1:-1;;1570:300:22:o;2470:98::-;2524:13;2556:5;2549:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2470:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:22;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:22;;3935:167::o;3467:407::-;3547:13;3563:23;3578:7;3563:14;:23::i;:::-;3547:39;;3610:5;-1:-1:-1;;;;;3604:11:22;:2;-1:-1:-1;;;;;3604:11:22;;3596:57;;;;-1:-1:-1;;;3596:57:22;;6056:2:50;3596:57:22;;;6038:21:50;6095:2;6075:18;;;6068:30;6134:34;6114:18;;;6107:62;-1:-1:-1;;;6185:18:50;;;6178:31;6226:19;;3596:57:22;;;;;;;;;719:10:28;-1:-1:-1;;;;;3685:21:22;;;;:62;;-1:-1:-1;3710:37:22;3727:5;719:10:28;4388:162:22;:::i;3710:37::-;3664:171;;;;-1:-1:-1;;;3664:171:22;;6458:2:50;3664:171:22;;;6440:21:50;6497:2;6477:18;;;6470:30;6536:34;6516:18;;;6509:62;6607:32;6587:18;;;6580:60;6657:19;;3664:171:22;6256:426:50;3664:171:22;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3537:337;3467:407;;:::o;4612:327::-;4801:41;719:10:28;4834:7:22;4801:18;:41::i;:::-;4793:100;;;;-1:-1:-1;;;4793:100:22;;;;;;;:::i;:::-;4904:28;4914:4;4920:2;4924:7;4904:9;:28::i;5005:179::-;5138:39;5155:4;5161:2;5165:7;5138:39;;;;;;;;;;;;:16;:39::i;2190:218::-;2262:7;2297:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2297:16:22;;2323:56;;;;-1:-1:-1;;;2323:56:22;;7304:2:50;2323:56:22;;;7286:21:50;7343:2;7323:18;;;7316:30;-1:-1:-1;;;7362:18:50;;;7355:54;7426:18;;2323:56:22;7102:348:50;1929:204:22;2001:7;-1:-1:-1;;;;;2028:19:22;;2020:73;;;;-1:-1:-1;;;2020:73:22;;7657:2:50;2020:73:22;;;7639:21:50;7696:2;7676:18;;;7669:30;7735:34;7715:18;;;7708:62;-1:-1:-1;;;7786:18:50;;;7779:39;7835:19;;2020:73:22;7455:405:50;2020:73:22;-1:-1:-1;;;;;;2110:16:22;;;;;:9;:16;;;;;;;1929:204::o;1831:101:17:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2632:102:22:-;2688:13;2720:7;2713:14;;;;;:::i;4169:153::-;4263:52;719:10:28;4296:8:22;4306;4263:18;:52::i;:::-;4169:153;;:::o;5250:315::-;5418:41;719:10:28;5451:7:22;5418:18;:41::i;:::-;5410:100;;;;-1:-1:-1;;;5410:100:22;;;;;;;:::i;:::-;5520:38;5534:4;5540:2;5544:7;5553:4;5520:13;:38::i;:::-;5250:315;;;;:::o;482:608:25:-;555:13;580:23;595:7;580:14;:23::i;:::-;614;640:19;;;:10;:19;;;;;614:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;669:18;690:10;3394:9:22;;;;;;;;;-1:-1:-1;3394:9:22;;;3318:92;690:10:25;669:31;;779:4;773:18;795:1;773:23;769:70;;-1:-1:-1;819:9:25;482:608;-1:-1:-1;;482:608:25:o;769:70::-;941:23;;:27;937:106;;1015:4;1021:9;998:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;984:48;;;;482:608;;;:::o;937:106::-;1060:23;1075:7;1060:14;:23::i;:::-;1053:30;482:608;-1:-1:-1;;;;482:608:25:o;4388:162:22:-;-1:-1:-1;;;;;4508:25:22;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162::o;943:269:32:-;1094:13:17;:11;:13::i;:::-;-1:-1:-1;;;;;1030:17:32;::::1;1022:45;;;::::0;-1:-1:-1;;;1022:45:32;;8568:2:50;1022:45:32::1;::::0;::::1;8550:21:50::0;8607:2;8587:18;;;8580:30;-1:-1:-1;;;8626:18:50;;;8619:45;8681:18;;1022:45:32::1;8366:339:50::0;1022:45:32::1;1077:8;:10:::0;;;:8:::1;:10;::::0;::::1;:::i;:::-;;;;;;1097:24;1107:3;1112:8;;1097:9;:24::i;:::-;1131:28;1144:8;;1154:4;1131:12;:28::i;:::-;1175:30;1185:3;1190:8;;1200:4;1175:30;;;;;;;;:::i;:::-;;;;;;;;943:269:::0;;:::o;2081:198:17:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:17;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:17;;9577:2:50;2161:73:17::1;::::0;::::1;9559:21:50::0;9616:2;9596:18;;;9589:30;9655:34;9635:18;;;9628:62;-1:-1:-1;;;9706:18:50;;;9699:36;9752:19;;2161:73:17::1;9375:402:50::0;2161:73:17::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;11657:133:22:-;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:22;11730:53;;;;-1:-1:-1;;;11730:53:22;;7304:2:50;11730:53:22;;;7286:21:50;7343:2;7323:18;;;7316:30;-1:-1:-1;;;7362:18:50;;;7355:54;7426:18;;11730:53:22;7102:348:50;10959:171:22;11033:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11033:29:22;-1:-1:-1;;;;;11033:29:22;;;;;;;;:24;;11086:23;11033:24;11086:14;:23::i;:::-;-1:-1:-1;;;;;11077:46:22;;;;;;;;;;;10959:171;;:::o;7317:261::-;7410:4;7426:13;7442:23;7457:7;7442:14;:23::i;:::-;7426:39;;7494:5;-1:-1:-1;;;;;7483:16:22;:7;-1:-1:-1;;;;;7483:16:22;;:52;;;;7503:32;7520:5;7527:7;7503:16;:32::i;:::-;7483:87;;;;7563:7;-1:-1:-1;;;;;7539:31:22;:20;7551:7;7539:11;:20::i;:::-;-1:-1:-1;;;;;7539:31:22;;7475:96;7317:261;-1:-1:-1;;;;7317:261:22:o;10242:605::-;10396:4;-1:-1:-1;;;;;10369:31:22;:23;10384:7;10369:14;:23::i;:::-;-1:-1:-1;;;;;10369:31:22;;10361:81;;;;-1:-1:-1;;;10361:81:22;;9984:2:50;10361:81:22;;;9966:21:50;10023:2;10003:18;;;9996:30;10062:34;10042:18;;;10035:62;-1:-1:-1;;;10113:18:50;;;10106:35;10158:19;;10361:81:22;9782:401:50;10361:81:22;-1:-1:-1;;;;;10460:16:22;;10452:65;;;;-1:-1:-1;;;10452:65:22;;10390:2:50;10452:65:22;;;10372:21:50;10429:2;10409:18;;;10402:30;10468:34;10448:18;;;10441:62;-1:-1:-1;;;10519:18:50;;;10512:34;10563:19;;10452:65:22;10188:400:50;10452:65:22;10629:29;10646:1;10650:7;10629:8;:29::i;:::-;-1:-1:-1;;;;;10669:15:22;;;;;;:9;:15;;;;;:20;;10688:1;;10669:15;:20;;10688:1;;10669:20;:::i;:::-;;;;-1:-1:-1;;;;;;;10699:13:22;;;;;;:9;:13;;;;;:18;;10716:1;;10699:13;:18;;10716:1;;10699:18;:::i;:::-;;;;-1:-1:-1;;10727:16:22;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10727:21:22;-1:-1:-1;;;;;10727:21:22;;;;;;;;;10764:27;;10727:16;;10764:27;;;;;;;3537:337;3467:407;;:::o;1359:130:17:-;1273:6;;-1:-1:-1;;;;;1273:6:17;719:10:28;1422:23:17;1414:68;;;;-1:-1:-1;;;1414:68:17;;11058:2:50;1414:68:17;;;11040:21:50;;;11077:18;;;11070:30;11136:34;11116:18;;;11109:62;11188:18;;1414:68:17;10856:356:50;2433:187:17;2525:6;;;-1:-1:-1;;;;;2541:17:17;;;-1:-1:-1;;;;;;2541:17:17;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;11266:307:22:-;11416:8;-1:-1:-1;;;;;11407:17:22;:5;-1:-1:-1;;;;;11407:17:22;;11399:55;;;;-1:-1:-1;;;11399:55:22;;11419:2:50;11399:55:22;;;11401:21:50;11458:2;11438:18;;;11431:30;11497:27;11477:18;;;11470:55;11542:18;;11399:55:22;11217:349:50;11399:55:22;-1:-1:-1;;;;;11464:25:22;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11464:46:22;;;;;;;;;;11525:41;;540::50;;;11525::22;;513:18:50;11525:41:22;;;;;;;11266:307;;;:::o;6426:305::-;6576:28;6586:4;6592:2;6596:7;6576:9;:28::i;:::-;6622:47;6645:4;6651:2;6655:7;6664:4;6622:22;:47::i;:::-;6614:110;;;;-1:-1:-1;;;6614:110:22;;;;;;;:::i;2800:276::-;2873:13;2898:23;2913:7;2898:14;:23::i;:::-;2932:21;2956:10;3394:9;;;;;;;;;-1:-1:-1;3394:9:22;;;3318:92;2956:10;2932:34;;3007:1;2989:7;2983:21;:25;:86;;;;;;;;;;;;;;;;;3035:7;3044:18;:7;:16;:18::i;:::-;3018:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2983:86;2976:93;2800:276;-1:-1:-1;;;2800:276:22:o;7908:108::-;7983:26;7993:2;7997:7;7983:26;;;;;;;;;;;;:9;:26::i;1237:214:25:-;7099:4:22;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:22;1328:75:25;;;;-1:-1:-1;;;1328:75:25;;12192:2:50;1328:75:25;;;12174:21:50;12231:2;12211:18;;;12204:30;12270:34;12250:18;;;12243:62;-1:-1:-1;;;12321:18:50;;;12314:44;12375:19;;1328:75:25;11990:410:50;1328:75:25;1413:19;;;;:10;:19;;;;;:31;1435:9;1413:19;:31;:::i;12342:831:22:-;12491:4;-1:-1:-1;;;;;12511:13:22;;1465:19:27;:23;12507:660:22;;12546:71;;-1:-1:-1;;;12546:71:22;;-1:-1:-1;;;;;12546:36:22;;;;;:71;;719:10:28;;12597:4:22;;12603:7;;12612:4;;12546:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12546:71:22;;;;;;;;-1:-1:-1;;12546:71:22;;;;;;;;;;;;:::i;:::-;;;12542:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12784:6;:13;12801:1;12784:18;12780:321;;12826:60;;-1:-1:-1;;;12826:60:22;;;;;;;:::i;12780:321::-;13053:6;13047:13;13038:6;13034:2;13030:15;13023:38;12542:573;-1:-1:-1;;;;;;12667:51:22;-1:-1:-1;;;12667:51:22;;-1:-1:-1;12660:58:22;;12507:660;-1:-1:-1;13152:4:22;12342:831;;;;;;:::o;392:703:29:-;448:13;665:5;674:1;665:10;661:51;;-1:-1:-1;;691:10:29;;;;;;;;;;;;-1:-1:-1;;;691:10:29;;;;;392:703::o;661:51::-;736:5;721:12;775:75;782:9;;775:75;;807:8;;;;:::i;:::-;;-1:-1:-1;829:10:29;;-1:-1:-1;837:2:29;829:10;;:::i;:::-;;;775:75;;;859:19;891:6;881:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;881:17:29;;859:39;;908:150;915:10;;908:150;;941:11;951:1;941:11;;:::i;:::-;;-1:-1:-1;1009:10:29;1017:2;1009:5;:10;:::i;:::-;996:24;;:2;:24;:::i;:::-;983:39;;966:6;973;966:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;966:56:29;;;;;;;;-1:-1:-1;1036:11:29;1045:2;1036:11;;:::i;:::-;;;908:150;;8237:309:22;8361:18;8367:2;8371:7;8361:5;:18::i;:::-;8410:53;8441:1;8445:2;8449:7;8458:4;8410:22;:53::i;:::-;8389:150;;;;-1:-1:-1;;;8389:150:22;;;;;;;:::i;8868:427::-;-1:-1:-1;;;;;8947:16:22;;8939:61;;;;-1:-1:-1;;;8939:61:22;;16065:2:50;8939:61:22;;;16047:21:50;;;16084:18;;;16077:30;16143:34;16123:18;;;16116:62;16195:18;;8939:61:22;15863:356:50;8939:61:22;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:22;:30;9010:58;;;;-1:-1:-1;;;9010:58:22;;16426:2:50;9010:58:22;;;16408:21:50;16465:2;16445:18;;;16438:30;16504;16484:18;;;16477:58;16552:18;;9010:58:22;16224:352:50;9010:58:22;-1:-1:-1;;;;;9135:13:22;;;;;;:9;:13;;;;;:18;;9152:1;;9135:13;:18;;9152:1;;9135:18;:::i;:::-;;;;-1:-1:-1;;9163:16:22;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9163:21:22;-1:-1:-1;;;;;9163:21:22;;;;;;;;9200:33;;9163:16;;;9200:33;;9163:16;;9200:33;4169:153;;:::o;14:131:50:-;-1:-1:-1;;;;;;88:32:50;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:50;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:50;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:50:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:50;;1348:180;-1:-1:-1;1348:180:50:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:50;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:50:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:631;3432:5;3462:18;3503:2;3495:6;3492:14;3489:40;;;3509:18;;:::i;:::-;3584:2;3578:9;3552:2;3638:15;;-1:-1:-1;;3634:24:50;;;3660:2;3630:33;3626:42;3614:55;;;3684:18;;;3704:22;;;3681:46;3678:72;;;3730:18;;:::i;:::-;3770:10;3766:2;3759:22;3799:6;3790:15;;3829:6;3821;3814:22;3869:3;3860:6;3855:3;3851:16;3848:25;3845:45;;;3886:1;3883;3876:12;3845:45;3936:6;3931:3;3924:4;3916:6;3912:17;3899:44;3991:1;3984:4;3975:6;3967;3963:19;3959:30;3952:41;;;;3368:631;;;;;:::o;4004:666::-;4099:6;4107;4115;4123;4176:3;4164:9;4155:7;4151:23;4147:33;4144:53;;;4193:1;4190;4183:12;4144:53;4216:29;4235:9;4216:29;:::i;:::-;4206:39;;4264:38;4298:2;4287:9;4283:18;4264:38;:::i;:::-;4254:48;;4349:2;4338:9;4334:18;4321:32;4311:42;;4404:2;4393:9;4389:18;4376:32;4431:18;4423:6;4420:30;4417:50;;;4463:1;4460;4453:12;4417:50;4486:22;;4539:4;4531:13;;4527:27;-1:-1:-1;4517:55:50;;4568:1;4565;4558:12;4517:55;4591:73;4656:7;4651:2;4638:16;4633:2;4629;4625:11;4591:73;:::i;:::-;4581:83;;;4004:666;;;;;;;:::o;4675:260::-;4743:6;4751;4804:2;4792:9;4783:7;4779:23;4775:32;4772:52;;;4820:1;4817;4810:12;4772:52;4843:29;4862:9;4843:29;:::i;:::-;4833:39;;4891:38;4925:2;4914:9;4910:18;4891:38;:::i;:::-;4881:48;;4675:260;;;;;:::o;4940:524::-;5018:6;5026;5079:2;5067:9;5058:7;5054:23;5050:32;5047:52;;;5095:1;5092;5085:12;5047:52;5118:29;5137:9;5118:29;:::i;:::-;5108:39;;5198:2;5187:9;5183:18;5170:32;5225:18;5217:6;5214:30;5211:50;;;5257:1;5254;5247:12;5211:50;5280:22;;5333:4;5325:13;;5321:27;-1:-1:-1;5311:55:50;;5362:1;5359;5352:12;5311:55;5385:73;5450:7;5445:2;5432:16;5427:2;5423;5419:11;5385:73;:::i;:::-;5375:83;;;4940:524;;;;;:::o;5469:380::-;5548:1;5544:12;;;;5591;;;5612:61;;5666:4;5658:6;5654:17;5644:27;;5612:61;5719:2;5711:6;5708:14;5688:18;5685:38;5682:161;;5765:10;5760:3;5756:20;5753:1;5746:31;5800:4;5797:1;5790:15;5828:4;5825:1;5818:15;5682:161;;5469:380;;;:::o;6687:410::-;6889:2;6871:21;;;6928:2;6908:18;;;6901:30;6967:34;6962:2;6947:18;;6940:62;-1:-1:-1;;;7033:2:50;7018:18;;7011:44;7087:3;7072:19;;6687:410::o;7865:496::-;8044:3;8082:6;8076:13;8098:66;8157:6;8152:3;8145:4;8137:6;8133:17;8098:66;:::i;:::-;8227:13;;8186:16;;;;8249:70;8227:13;8186:16;8296:4;8284:17;;8249:70;:::i;:::-;8335:20;;7865:496;-1:-1:-1;;;;7865:496:50:o;8710:127::-;8771:10;8766:3;8762:20;8759:1;8752:31;8802:4;8799:1;8792:15;8826:4;8823:1;8816:15;8842:135;8881:3;8902:17;;;8899:43;;8922:18;;:::i;:::-;-1:-1:-1;8969:1:50;8958:13;;8842:135::o;8982:388::-;9216:1;9212;9207:3;9203:11;9199:19;9191:6;9187:32;9176:9;9169:51;9256:6;9251:2;9240:9;9236:18;9229:34;9299:2;9294;9283:9;9279:18;9272:30;9150:4;9319:45;9360:2;9349:9;9345:18;9337:6;9319:45;:::i;:::-;9311:53;8982:388;-1:-1:-1;;;;;8982:388:50:o;10593:128::-;10660:9;;;10681:11;;;10678:37;;;10695:18;;:::i;10726:125::-;10791:9;;;10812:10;;;10809:36;;;10825:18;;:::i;11571:414::-;11773:2;11755:21;;;11812:2;11792:18;;;11785:30;11851:34;11846:2;11831:18;;11824:62;-1:-1:-1;;;11917:2:50;11902:18;;11895:48;11975:3;11960:19;;11571:414::o;12531:545::-;12633:2;12628:3;12625:11;12622:448;;;12669:1;12694:5;12690:2;12683:17;12739:4;12735:2;12725:19;12809:2;12797:10;12793:19;12790:1;12786:27;12780:4;12776:38;12845:4;12833:10;12830:20;12827:47;;;-1:-1:-1;12868:4:50;12827:47;12923:2;12918:3;12914:12;12911:1;12907:20;12901:4;12897:31;12887:41;;12978:82;12996:2;12989:5;12986:13;12978:82;;;13041:17;;;13022:1;13011:13;12978:82;;;12982:3;;;12531:545;;;:::o;13252:1352::-;13378:3;13372:10;13405:18;13397:6;13394:30;13391:56;;;13427:18;;:::i;:::-;13456:97;13546:6;13506:38;13538:4;13532:11;13506:38;:::i;:::-;13500:4;13456:97;:::i;:::-;13608:4;;13672:2;13661:14;;13689:1;13684:663;;;;14391:1;14408:6;14405:89;;;-1:-1:-1;14460:19:50;;;14454:26;14405:89;-1:-1:-1;;13209:1:50;13205:11;;;13201:24;13197:29;13187:40;13233:1;13229:11;;;13184:57;14507:81;;13654:944;;13684:663;12478:1;12471:14;;;12515:4;12502:18;;-1:-1:-1;;13720:20:50;;;13838:236;13852:7;13849:1;13846:14;13838:236;;;13941:19;;;13935:26;13920:42;;14033:27;;;;14001:1;13989:14;;;;13868:19;;13838:236;;;13842:3;14102:6;14093:7;14090:19;14087:201;;;14163:19;;;14157:26;-1:-1:-1;;14246:1:50;14242:14;;;14258:3;14238:24;14234:37;14230:42;14215:58;14200:74;;14087:201;-1:-1:-1;;;;;14334:1:50;14318:14;;;14314:22;14301:36;;-1:-1:-1;13252:1352:50:o;14609:489::-;-1:-1:-1;;;;;14878:15:50;;;14860:34;;14930:15;;14925:2;14910:18;;14903:43;14977:2;14962:18;;14955:34;;;15025:3;15020:2;15005:18;;14998:31;;;14803:4;;15046:46;;15072:19;;15064:6;15046:46;:::i;:::-;15038:54;14609:489;-1:-1:-1;;;;;;14609:489:50:o;15103:249::-;15172:6;15225:2;15213:9;15204:7;15200:23;15196:32;15193:52;;;15241:1;15238;15231:12;15193:52;15273:9;15267:16;15292:30;15316:5;15292:30;:::i;15357:127::-;15418:10;15413:3;15409:20;15406:1;15399:31;15449:4;15446:1;15439:15;15473:4;15470:1;15463:15;15489:120;15529:1;15555;15545:35;;15560:18;;:::i;:::-;-1:-1:-1;15594:9:50;;15489:120::o;15614:112::-;15646:1;15672;15662:35;;15677:18;;:::i;:::-;-1:-1:-1;15711:9:50;;15614:112::o;15731:127::-;15792:10;15787:3;15783:20;15780:1;15773:31;15823:4;15820:1;15813:15;15847:4;15844:1;15837:15", "abi": "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"MintedNFT\",\"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\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"mintNFT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "60806040523480156200001157600080fd5b5060405162001bdd38038062001bdd833981016040819052620000349162000193565b818160006200004483826200028c565b5060016200005382826200028c565b505050620000706200006a6200007860201b60201c565b6200007c565b505062000358565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000f657600080fd5b81516001600160401b0380821115620001135762000113620000ce565b604051601f8301601f19908116603f011681019082821181831017156200013e576200013e620000ce565b816040528381526020925086838588010111156200015b57600080fd5b600091505b838210156200017f578582018301518183018401529082019062000160565b600093810190920192909252949350505050565b60008060408385031215620001a757600080fd5b82516001600160401b0380821115620001bf57600080fd5b620001cd86838701620000e4565b93506020850151915080821115620001e457600080fd5b50620001f385828601620000e4565b9150509250929050565b600181811c908216806200021257607f821691505b6020821081036200023357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028757600081815260208120601f850160051c81016020861015620002625750805b601f850160051c820191505b8181101562000283578281556001016200026e565b5050505b505050565b81516001600160401b03811115620002a857620002a8620000ce565b620002c081620002b98454620001fd565b8462000239565b602080601f831160018114620002f85760008415620002df5750858301515b600019600386901b1c1916600185901b17855562000283565b600085815260208120601f198616915b82811015620003295788860151825594840194600190910190840162000308565b5085821015620003485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61187580620003686000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde1461022f578063c87b56dd14610242578063e985e9c514610255578063eacabe1414610268578063f2fde38b1461027b57600080fd5b8063715018a6146101fb5780638da5cb5b1461020357806395d89b4114610214578063a22cb4651461021c57600080fd5b806323b872dd116100e957806323b872dd1461019857806342842e0e146101ab5780636352211e146101be57806370a08231146101d1578063714cff56146101f257600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e6101293660046111e6565b61028e565b60405190151581526020015b60405180910390f35b61014b6102e0565b60405161013a9190611253565b61016b610166366004611266565b610372565b6040516001600160a01b03909116815260200161013a565b61019661019136600461129b565b610399565b005b6101966101a63660046112c5565b6104b3565b6101966101b93660046112c5565b6104e4565b61016b6101cc366004611266565b6104ff565b6101e46101df366004611301565b61055f565b60405190815260200161013a565b6101e460085481565b6101966105e5565b6007546001600160a01b031661016b565b61014b6105f9565b61019661022a36600461131c565b610608565b61019661023d3660046113e4565b610617565b61014b610250366004611266565b61064f565b61012e610263366004611460565b61075f565b610196610276366004611493565b61078d565b610196610289366004611301565b61084b565b60006001600160e01b031982166380ac58cd60e01b14806102bf57506001600160e01b03198216635b5e139f60e01b145b806102da57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546102ef906114f5565b80601f016020809104026020016040519081016040528092919081815260200182805461031b906114f5565b80156103685780601f1061033d57610100808354040283529160200191610368565b820191906000526020600020905b81548152906001019060200180831161034b57829003601f168201915b5050505050905090565b600061037d826108c4565b506000908152600460205260409020546001600160a01b031690565b60006103a4826104ff565b9050806001600160a01b0316836001600160a01b0316036104165760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806104325750610432813361075f565b6104a45760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161040d565b6104ae8383610923565b505050565b6104bd3382610991565b6104d95760405162461bcd60e51b815260040161040d9061152f565b6104ae8383836109ef565b6104ae83838360405180602001604052806000815250610617565b6000818152600260205260408120546001600160a01b0316806102da5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161040d565b60006001600160a01b0382166105c95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161040d565b506001600160a01b031660009081526003602052604090205490565b6105ed610b8b565b6105f76000610be5565b565b6060600180546102ef906114f5565b610613338383610c37565b5050565b6106213383610991565b61063d5760405162461bcd60e51b815260040161040d9061152f565b61064984848484610d05565b50505050565b606061065a826108c4565b60008281526006602052604081208054610673906114f5565b80601f016020809104026020016040519081016040528092919081815260200182805461069f906114f5565b80156106ec5780601f106106c1576101008083540402835291602001916106ec565b820191906000526020600020905b8154815290600101906020018083116106cf57829003601f168201915b50505050509050600061070a60408051602081019091526000815290565b9050805160000361071c575092915050565b81511561074e57808260405160200161073692919061157d565b60405160208183030381529060405292505050919050565b61075784610d38565b949350505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b610795610b8b565b6001600160a01b0382166107dd5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161040d565b600880549060006107ed836115c2565b91905055506107fe82600854610dac565b61080a60085482610dc6565b7f9f0432214927ca5d54e705bee45cb45cd0b88d9c6bc15906cc3498feb1d81310826008548360405161083f939291906115db565b60405180910390a15050565b610853610b8b565b6001600160a01b0381166108b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161040d565b6108c181610be5565b50565b6000818152600260205260409020546001600160a01b03166108c15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161040d565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610958826104ff565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061099d836104ff565b9050806001600160a01b0316846001600160a01b031614806109c457506109c4818561075f565b806107575750836001600160a01b03166109dd84610372565b6001600160a01b031614949350505050565b826001600160a01b0316610a02826104ff565b6001600160a01b031614610a665760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161040d565b6001600160a01b038216610ac85760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161040d565b610ad3600082610923565b6001600160a01b0383166000908152600360205260408120805460019290610afc90849061160b565b90915550506001600160a01b0382166000908152600360205260408120805460019290610b2a90849061161e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6007546001600160a01b031633146105f75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040d565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603610c985760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161040d565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610d108484846109ef565b610d1c84848484610e59565b6106495760405162461bcd60e51b815260040161040d90611631565b6060610d43826108c4565b6000610d5a60408051602081019091526000815290565b90506000815111610d7a5760405180602001604052806000815250610da5565b80610d8484610f5a565b604051602001610d9592919061157d565b6040516020818303038152906040525b9392505050565b61061382826040518060200160405280600081525061105b565b6000828152600260205260409020546001600160a01b0316610e415760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b606482015260840161040d565b60008281526006602052604090206104ae82826116d1565b60006001600160a01b0384163b15610f4f57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610e9d903390899088908890600401611791565b6020604051808303816000875af1925050508015610ed8575060408051601f3d908101601f19168201909252610ed5918101906117ce565b60015b610f35573d808015610f06576040519150601f19603f3d011682016040523d82523d6000602084013e610f0b565b606091505b508051600003610f2d5760405162461bcd60e51b815260040161040d90611631565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610757565b506001949350505050565b606081600003610f815750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610fab5780610f95816115c2565b9150610fa49050600a83611801565b9150610f85565b60008167ffffffffffffffff811115610fc657610fc6611358565b6040519080825280601f01601f191660200182016040528015610ff0576020820181803683370190505b5090505b84156107575761100560018361160b565b9150611012600a86611815565b61101d90603061161e565b60f81b81838151811061103257611032611829565b60200101906001600160f81b031916908160001a905350611054600a86611801565b9450610ff4565b611065838361108e565b6110726000848484610e59565b6104ae5760405162461bcd60e51b815260040161040d90611631565b6001600160a01b0382166110e45760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161040d565b6000818152600260205260409020546001600160a01b0316156111495760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161040d565b6001600160a01b038216600090815260036020526040812080546001929061117290849061161e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b0319811681146108c157600080fd5b6000602082840312156111f857600080fd5b8135610da5816111d0565b60005b8381101561121e578181015183820152602001611206565b50506000910152565b6000815180845261123f816020860160208601611203565b601f01601f19169290920160200192915050565b602081526000610da56020830184611227565b60006020828403121561127857600080fd5b5035919050565b80356001600160a01b038116811461129657600080fd5b919050565b600080604083850312156112ae57600080fd5b6112b78361127f565b946020939093013593505050565b6000806000606084860312156112da57600080fd5b6112e38461127f565b92506112f16020850161127f565b9150604084013590509250925092565b60006020828403121561131357600080fd5b610da58261127f565b6000806040838503121561132f57600080fd5b6113388361127f565b91506020830135801515811461134d57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561138957611389611358565b604051601f8501601f19908116603f011681019082821181831017156113b1576113b1611358565b816040528093508581528686860111156113ca57600080fd5b858560208301376000602087830101525050509392505050565b600080600080608085870312156113fa57600080fd5b6114038561127f565b93506114116020860161127f565b925060408501359150606085013567ffffffffffffffff81111561143457600080fd5b8501601f8101871361144557600080fd5b6114548782356020840161136e565b91505092959194509250565b6000806040838503121561147357600080fd5b61147c8361127f565b915061148a6020840161127f565b90509250929050565b600080604083850312156114a657600080fd5b6114af8361127f565b9150602083013567ffffffffffffffff8111156114cb57600080fd5b8301601f810185136114dc57600080fd5b6114eb8582356020840161136e565b9150509250929050565b600181811c9082168061150957607f821691505b60208210810361152957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000835161158f818460208801611203565b8351908301906115a3818360208801611203565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016115d4576115d46115ac565b5060010190565b60018060a01b03841681528260208201526060604082015260006116026060830184611227565b95945050505050565b818103818111156102da576102da6115ac565b808201808211156102da576102da6115ac565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b601f8211156104ae57600081815260208120601f850160051c810160208610156116aa5750805b601f850160051c820191505b818110156116c9578281556001016116b6565b505050505050565b815167ffffffffffffffff8111156116eb576116eb611358565b6116ff816116f984546114f5565b84611683565b602080601f831160018114611734576000841561171c5750858301515b600019600386901b1c1916600185901b1785556116c9565b600085815260208120601f198616915b8281101561176357888601518255948401946001909101908401611744565b50858210156117815787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906117c490830184611227565b9695505050505050565b6000602082840312156117e057600080fd5b8151610da5816111d0565b634e487b7160e01b600052601260045260246000fd5b600082611810576118106117eb565b500490565b600082611824576118246117eb565b500690565b634e487b7160e01b600052603260045260246000fdfea264697066735822122055b4e07304fe036fe3f04e44a7921cbb4fce75fcf1885d1110f1e529fecb60a764736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde1461022f578063c87b56dd14610242578063e985e9c514610255578063eacabe1414610268578063f2fde38b1461027b57600080fd5b8063715018a6146101fb5780638da5cb5b1461020357806395d89b4114610214578063a22cb4651461021c57600080fd5b806323b872dd116100e957806323b872dd1461019857806342842e0e146101ab5780636352211e146101be57806370a08231146101d1578063714cff56146101f257600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e6101293660046111e6565b61028e565b60405190151581526020015b60405180910390f35b61014b6102e0565b60405161013a9190611253565b61016b610166366004611266565b610372565b6040516001600160a01b03909116815260200161013a565b61019661019136600461129b565b610399565b005b6101966101a63660046112c5565b6104b3565b6101966101b93660046112c5565b6104e4565b61016b6101cc366004611266565b6104ff565b6101e46101df366004611301565b61055f565b60405190815260200161013a565b6101e460085481565b6101966105e5565b6007546001600160a01b031661016b565b61014b6105f9565b61019661022a36600461131c565b610608565b61019661023d3660046113e4565b610617565b61014b610250366004611266565b61064f565b61012e610263366004611460565b61075f565b610196610276366004611493565b61078d565b610196610289366004611301565b61084b565b60006001600160e01b031982166380ac58cd60e01b14806102bf57506001600160e01b03198216635b5e139f60e01b145b806102da57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546102ef906114f5565b80601f016020809104026020016040519081016040528092919081815260200182805461031b906114f5565b80156103685780601f1061033d57610100808354040283529160200191610368565b820191906000526020600020905b81548152906001019060200180831161034b57829003601f168201915b5050505050905090565b600061037d826108c4565b506000908152600460205260409020546001600160a01b031690565b60006103a4826104ff565b9050806001600160a01b0316836001600160a01b0316036104165760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806104325750610432813361075f565b6104a45760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161040d565b6104ae8383610923565b505050565b6104bd3382610991565b6104d95760405162461bcd60e51b815260040161040d9061152f565b6104ae8383836109ef565b6104ae83838360405180602001604052806000815250610617565b6000818152600260205260408120546001600160a01b0316806102da5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161040d565b60006001600160a01b0382166105c95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161040d565b506001600160a01b031660009081526003602052604090205490565b6105ed610b8b565b6105f76000610be5565b565b6060600180546102ef906114f5565b610613338383610c37565b5050565b6106213383610991565b61063d5760405162461bcd60e51b815260040161040d9061152f565b61064984848484610d05565b50505050565b606061065a826108c4565b60008281526006602052604081208054610673906114f5565b80601f016020809104026020016040519081016040528092919081815260200182805461069f906114f5565b80156106ec5780601f106106c1576101008083540402835291602001916106ec565b820191906000526020600020905b8154815290600101906020018083116106cf57829003601f168201915b50505050509050600061070a60408051602081019091526000815290565b9050805160000361071c575092915050565b81511561074e57808260405160200161073692919061157d565b60405160208183030381529060405292505050919050565b61075784610d38565b949350505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b610795610b8b565b6001600160a01b0382166107dd5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161040d565b600880549060006107ed836115c2565b91905055506107fe82600854610dac565b61080a60085482610dc6565b7f9f0432214927ca5d54e705bee45cb45cd0b88d9c6bc15906cc3498feb1d81310826008548360405161083f939291906115db565b60405180910390a15050565b610853610b8b565b6001600160a01b0381166108b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161040d565b6108c181610be5565b50565b6000818152600260205260409020546001600160a01b03166108c15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161040d565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610958826104ff565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061099d836104ff565b9050806001600160a01b0316846001600160a01b031614806109c457506109c4818561075f565b806107575750836001600160a01b03166109dd84610372565b6001600160a01b031614949350505050565b826001600160a01b0316610a02826104ff565b6001600160a01b031614610a665760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161040d565b6001600160a01b038216610ac85760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161040d565b610ad3600082610923565b6001600160a01b0383166000908152600360205260408120805460019290610afc90849061160b565b90915550506001600160a01b0382166000908152600360205260408120805460019290610b2a90849061161e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6007546001600160a01b031633146105f75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040d565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603610c985760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161040d565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610d108484846109ef565b610d1c84848484610e59565b6106495760405162461bcd60e51b815260040161040d90611631565b6060610d43826108c4565b6000610d5a60408051602081019091526000815290565b90506000815111610d7a5760405180602001604052806000815250610da5565b80610d8484610f5a565b604051602001610d9592919061157d565b6040516020818303038152906040525b9392505050565b61061382826040518060200160405280600081525061105b565b6000828152600260205260409020546001600160a01b0316610e415760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b606482015260840161040d565b60008281526006602052604090206104ae82826116d1565b60006001600160a01b0384163b15610f4f57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610e9d903390899088908890600401611791565b6020604051808303816000875af1925050508015610ed8575060408051601f3d908101601f19168201909252610ed5918101906117ce565b60015b610f35573d808015610f06576040519150601f19603f3d011682016040523d82523d6000602084013e610f0b565b606091505b508051600003610f2d5760405162461bcd60e51b815260040161040d90611631565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610757565b506001949350505050565b606081600003610f815750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610fab5780610f95816115c2565b9150610fa49050600a83611801565b9150610f85565b60008167ffffffffffffffff811115610fc657610fc6611358565b6040519080825280601f01601f191660200182016040528015610ff0576020820181803683370190505b5090505b84156107575761100560018361160b565b9150611012600a86611815565b61101d90603061161e565b60f81b81838151811061103257611032611829565b60200101906001600160f81b031916908160001a905350611054600a86611801565b9450610ff4565b611065838361108e565b6110726000848484610e59565b6104ae5760405162461bcd60e51b815260040161040d90611631565b6001600160a01b0382166110e45760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161040d565b6000818152600260205260409020546001600160a01b0316156111495760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161040d565b6001600160a01b038216600090815260036020526040812080546001929061117290849061161e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b0319811681146108c157600080fd5b6000602082840312156111f857600080fd5b8135610da5816111d0565b60005b8381101561121e578181015183820152602001611206565b50506000910152565b6000815180845261123f816020860160208601611203565b601f01601f19169290920160200192915050565b602081526000610da56020830184611227565b60006020828403121561127857600080fd5b5035919050565b80356001600160a01b038116811461129657600080fd5b919050565b600080604083850312156112ae57600080fd5b6112b78361127f565b946020939093013593505050565b6000806000606084860312156112da57600080fd5b6112e38461127f565b92506112f16020850161127f565b9150604084013590509250925092565b60006020828403121561131357600080fd5b610da58261127f565b6000806040838503121561132f57600080fd5b6113388361127f565b91506020830135801515811461134d57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561138957611389611358565b604051601f8501601f19908116603f011681019082821181831017156113b1576113b1611358565b816040528093508581528686860111156113ca57600080fd5b858560208301376000602087830101525050509392505050565b600080600080608085870312156113fa57600080fd5b6114038561127f565b93506114116020860161127f565b925060408501359150606085013567ffffffffffffffff81111561143457600080fd5b8501601f8101871361144557600080fd5b6114548782356020840161136e565b91505092959194509250565b6000806040838503121561147357600080fd5b61147c8361127f565b915061148a6020840161127f565b90509250929050565b600080604083850312156114a657600080fd5b6114af8361127f565b9150602083013567ffffffffffffffff8111156114cb57600080fd5b8301601f810185136114dc57600080fd5b6114eb8582356020840161136e565b9150509250929050565b600181811c9082168061150957607f821691505b60208210810361152957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000835161158f818460208801611203565b8351908301906115a3818360208801611203565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016115d4576115d46115ac565b5060010190565b60018060a01b03841681528260208201526060604082015260006116026060830184611227565b95945050505050565b818103818111156102da576102da6115ac565b808201808211156102da576102da6115ac565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b601f8211156104ae57600081815260208120601f850160051c810160208610156116aa5750805b601f850160051c820191505b818110156116c9578281556001016116b6565b505050505050565b815167ffffffffffffffff8111156116eb576116eb611358565b6116ff816116f984546114f5565b84611683565b602080601f831160018114611734576000841561171c5750858301515b600019600386901b1c1916600185901b1785556116c9565b600085815260208120601f198616915b8281101561176357888601518255948401946001909101908401611744565b50858210156117815787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906117c490830184611227565b9695505050505050565b6000602082840312156117e057600080fd5b8151610da5816111d0565b634e487b7160e01b600052601260045260246000fd5b600082611810576118106117eb565b500490565b600082611824576118246117eb565b500690565b634e487b7160e01b600052603260045260246000fdfea264697066735822122055b4e07304fe036fe3f04e44a7921cbb4fce75fcf1885d1110f1e529fecb60a764736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/IOUToken.sol:IOUToken": {"srcmap": "191:412:33:-:0;;;224:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;326:5;333:7;2044:5:19;:13;326:5:33;2044::19;:13;:::i;:::-;-1:-1:-1;2067:7:19;:17;2077:7;2067;:17;:::i;:::-;;1978:113;;352:29:33::1;358:8;368:12;352:5;;;:29;;:::i;:::-;224:164:::0;;;;191:412;;8402:389:19;-1:-1:-1;;;;;8485:21:19;;8477:65;;;;-1:-1:-1;;;8477:65:19;;4578:2:50;8477:65:19;;;4560:21:50;4617:2;4597:18;;;4590:30;4656:33;4636:18;;;4629:61;4707:18;;8477:65:19;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:19;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:19;;5109:25:50;;;-1:-1:-1;;;;;8688:37:19;;;8705:1;;8688:37;;5097:2:50;5082:18;8688:37:19;;;;;;;8402:389;;:::o;11786:121::-;;;;:::o;14:127:50:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:50;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:50;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:50:o;991:791::-;1108:6;1116;1124;1132;1185:3;1173:9;1164:7;1160:23;1156:33;1153:53;;;1202:1;1199;1192:12;1153:53;1228:16;;-1:-1:-1;;;;;1273:31:50;;1263:42;;1253:70;;1319:1;1316;1309:12;1253:70;1387:2;1372:18;;1366:25;1435:2;1420:18;;1414:25;1342:5;;-1:-1:-1;1366:25:50;-1:-1:-1;;;;;;1488:14:50;;;1485:34;;;1515:1;1512;1505:12;1485:34;1538:61;1591:7;1582:6;1571:9;1567:22;1538:61;:::i;:::-;1528:71;;1645:2;1634:9;1630:18;1624:25;1608:41;;1674:2;1664:8;1661:16;1658:36;;;1690:1;1687;1680:12;1658:36;;1713:63;1768:7;1757:8;1746:9;1742:24;1713:63;:::i;:::-;1703:73;;;991:791;;;;;;;:::o;1787:380::-;1866:1;1862:12;;;;1909;;;1930:61;;1984:4;1976:6;1972:17;1962:27;;1930:61;2037:2;2029:6;2026:14;2006:18;2003:38;2000:161;;2083:10;2078:3;2074:20;2071:1;2064:31;2118:4;2115:1;2108:15;2146:4;2143:1;2136:15;2000:161;;1787:380;;;:::o;2298:545::-;2400:2;2395:3;2392:11;2389:448;;;2436:1;2461:5;2457:2;2450:17;2506:4;2502:2;2492:19;2576:2;2564:10;2560:19;2557:1;2553:27;2547:4;2543:38;2612:4;2600:10;2597:20;2594:47;;;-1:-1:-1;2635:4:50;2594:47;2690:2;2685:3;2681:12;2678:1;2674:20;2668:4;2664:31;2654:41;;2745:82;2763:2;2756:5;2753:13;2745:82;;;2808:17;;;2789:1;2778:13;2745:82;;;2749:3;;;2298:545;;;:::o;3019:1352::-;3139:10;;-1:-1:-1;;;;;3161:30:50;;3158:56;;;3194:18;;:::i;:::-;3223:97;3313:6;3273:38;3305:4;3299:11;3273:38;:::i;:::-;3267:4;3223:97;:::i;:::-;3375:4;;3439:2;3428:14;;3456:1;3451:663;;;;4158:1;4175:6;4172:89;;;-1:-1:-1;4227:19:50;;;4221:26;4172:89;-1:-1:-1;;2976:1:50;2972:11;;;2968:24;2964:29;2954:40;3000:1;2996:11;;;2951:57;4274:81;;3421:944;;3451:663;2245:1;2238:14;;;2282:4;2269:18;;-1:-1:-1;;3487:20:50;;;3605:236;3619:7;3616:1;3613:14;3605:236;;;3708:19;;;3702:26;3687:42;;3800:27;;;;3768:1;3756:14;;;;3635:19;;3605:236;;;3609:3;3869:6;3860:7;3857:19;3854:201;;;3930:19;;;3924:26;-1:-1:-1;;4013:1:50;4009:14;;;4025:3;4005:24;4001:37;3997:42;3982:58;3967:74;;3854:201;-1:-1:-1;;;;;4101:1:50;4085:14;;;4081:22;4068:36;;-1:-1:-1;3019:1352:50:o;4736:222::-;4801:9;;;4822:10;;;4819:133;;;4874:10;4869:3;4865:20;4862:1;4855:31;4909:4;4906:1;4899:15;4937:4;4934:1;4927:15;4819:133;4736:222;;;;:::o;4963:177::-;191:412:33;;;;;;", "srcmap-runtime": "191:412:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:50;;1162:22;1144:41;;1132:2;1117:18;4433:197:19;1004:187:50;3244:106:19;3331:12;;3244:106;;;1342:25:50;;;1330:2;1315:18;3244:106:19;1196:177:50;5192:286:19;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;1853:36:50;;1841:2;1826:18;3093:91:19;1711:184:50;5873:234:19;;;;;;:::i;:::-;;:::i;516:85:33:-;;;;;;:::i;:::-;;:::i;:::-;;3408:125:19;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:19;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;2156:98::-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:28;4570:32:19;719:10:28;4586:7:19;4595:6;4570:8;:32::i;:::-;4619:4;4612:11;;;4433:197;;;;;:::o;5192:286::-;5319:4;719:10:28;5375:38:19;5391:4;719:10:28;5406:6:19;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:19;;5192:286;-1:-1:-1;;;;5192:286:19:o;5873:234::-;5961:4;719:10:28;6015:64:19;719:10:28;6031:7:19;6068:10;6040:25;719:10:28;6031:7:19;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;516:85:33:-;566:28;719:10:28;586:7:33;566:5;:28::i;:::-;516:85;:::o;2367:102:19:-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:28;6687:4:19;6768:25;719:10:28;6785:7:19;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:19;;3390:2:50;6803:85:19;;;3372:21:50;3429:2;3409:18;;;3402:30;3468:34;3448:18;;;3441:62;-1:-1:-1;;;3519:18:50;;;3512:35;3564:19;;6803:85:19;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:28;3862:28:19;719:10:28;3879:2:19;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:19;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:19;;10233:68;;;;-1:-1:-1;;;10233:68:19;;3796:2:50;10233:68:19;;;3778:21:50;3835:2;3815:18;;;3808:30;3874:34;3854:18;;;3847:62;-1:-1:-1;;;3925:18:50;;;3918:34;3969:19;;10233:68:19;3594:400:50;10233:68:19;-1:-1:-1;;;;;10319:21:19;;10311:68;;;;-1:-1:-1;;;10311:68:19;;4201:2:50;10311:68:19;;;4183:21:50;4240:2;4220:18;;;4213:30;4279:34;4259:18;;;4252:62;-1:-1:-1;;;4330:18:50;;;4323:32;4372:19;;10311:68:19;3999:398:50;10311:68:19;-1:-1:-1;;;;;10390:18:19;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;1342:25:50;;;10441:32:19;;1315:18:50;10441:32:19;;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:19;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:19;;4604:2:50;11010:68:19;;;4586:21:50;4643:2;4623:18;;;4616:30;4682:31;4662:18;;;4655:59;4731:18;;11010:68:19;4402:353:50;11010:68:19;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:19;;7593:68;;;;-1:-1:-1;;;7593:68:19;;4962:2:50;7593:68:19;;;4944:21:50;5001:2;4981:18;;;4974:30;5040:34;5020:18;;;5013:62;-1:-1:-1;;;5091:18:50;;;5084:35;5136:19;;7593:68:19;4760:401:50;7593:68:19;-1:-1:-1;;;;;7679:16:19;;7671:64;;;;-1:-1:-1;;;7671:64:19;;5368:2:50;7671:64:19;;;5350:21:50;5407:2;5387:18;;;5380:30;5446:34;5426:18;;;5419:62;-1:-1:-1;;;5497:18:50;;;5490:33;5540:19;;7671:64:19;5166:399:50;7671:64:19;-1:-1:-1;;;;;7817:15:19;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:19;;5772:2:50;7842:72:19;;;5754:21:50;5811:2;5791:18;;;5784:30;5850:34;5830:18;;;5823:62;-1:-1:-1;;;5901:18:50;;;5894:36;5947:19;;7842:72:19;5570:402:50;7842:72:19;-1:-1:-1;;;;;7948:15:19;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:19;8054:4;-1:-1:-1;;;;;8045:26:19;;8064:6;8045:26;;;;1342:25:50;;1330:2;1315:18;;1196:177;8045:26:19;;;;;;;;8082:37;9111:576;;-1:-1:-1;;;;;9194:21:19;;9186:67;;;;-1:-1:-1;;;9186:67:19;;6179:2:50;9186:67:19;;;6161:21:50;6218:2;6198:18;;;6191:30;6257:34;6237:18;;;6230:62;-1:-1:-1;;;6308:18:50;;;6301:31;6349:19;;9186:67:19;5977:397:50;9186:67:19;-1:-1:-1;;;;;9349:18:19;;9324:22;9349:18;;;;;;;;;;;9385:24;;;;9377:71;;;;-1:-1:-1;;;9377:71:19;;6581:2:50;9377:71:19;;;6563:21:50;6620:2;6600:18;;;6593:30;6659:34;6639:18;;;6632:62;-1:-1:-1;;;6710:18:50;;;6703:32;6752:19;;9377:71:19;6379:398:50;9377:71:19;-1:-1:-1;;;;;9482:18:19;;:9;:18;;;;;;;;;;9503:23;;;9482:44;;9546:12;:22;;9520:6;;9482:9;9546:22;;9520:6;;9546:22;:::i;:::-;;;;-1:-1:-1;;9584:37:19;;1342:25:50;;;9610:1:19;;-1:-1:-1;;;;;9584:37:19;;;;;1330:2:50;1315:18;9584:37:19;1196:177:50;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:50;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:50:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:50;;1900:180;-1:-1:-1;1900:180:50:o;2085:186::-;2144:6;2197:2;2185:9;2176:7;2172:23;2168:32;2165:52;;;2213:1;2210;2203:12;2165:52;2236:29;2255:9;2236:29;:::i;:::-;2226:39;2085:186;-1:-1:-1;;;2085:186:50:o;2276:260::-;2344:6;2352;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;;2492:38;2526:2;2515:9;2511:18;2492:38;:::i;:::-;2482:48;;2276:260;;;;;:::o;2541:380::-;2620:1;2616:12;;;;2663;;;2684:61;;2738:4;2730:6;2726:17;2716:27;;2684:61;2791:2;2783:6;2780:14;2760:18;2757:38;2754:161;;2837:10;2832:3;2828:20;2825:1;2818:31;2872:4;2869:1;2862:15;2900:4;2897:1;2890:15;2754:161;;2541:380;;;:::o;2926:127::-;2987:10;2982:3;2978:20;2975:1;2968:31;3018:4;3015:1;3008:15;3042:4;3039:1;3032:15;3058:125;3123:9;;;3144:10;;;3141:36;;;3157:18;;:::i;6782:128::-;6849:9;;;6870:11;;;6867:37;;;6884:18;;:::i", "abi": "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "60806040523480156200001157600080fd5b5060405162000e6e38038062000e6e833981016040819052620000349162000224565b8181600362000044838262000346565b50600462000053828262000346565b5050506200006884846200007260201b60201c565b505050506200043a565b6001600160a01b038216620000cd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000e1919062000412565b90915550506001600160a01b038216600090815260208190526040812080548392906200011090849062000412565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200018757600080fd5b81516001600160401b0380821115620001a457620001a46200015f565b604051601f8301601f19908116603f01168101908282118183101715620001cf57620001cf6200015f565b81604052838152602092508683858801011115620001ec57600080fd5b600091505b83821015620002105785820183015181830184015290820190620001f1565b600093810190920192909252949350505050565b600080600080608085870312156200023b57600080fd5b84516001600160a01b03811681146200025357600080fd5b6020860151604087015191955093506001600160401b03808211156200027857600080fd5b620002868883890162000175565b935060608701519150808211156200029d57600080fd5b50620002ac8782880162000175565b91505092959194509250565b600181811c90821680620002cd57607f821691505b602082108103620002ee57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200015a57600081815260208120601f850160051c810160208610156200031d5750805b601f850160051c820191505b818110156200033e5782815560010162000329565b505050505050565b81516001600160401b038111156200036257620003626200015f565b6200037a81620003738454620002b8565b84620002f4565b602080601f831160018114620003b25760008415620003995750858301515b600019600386901b1c1916600185901b1785556200033e565b600085815260208120601f198616915b82811015620003e357888601518255948401946001909101908401620003c2565b5085821015620004025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200043457634e487b7160e01b600052601160045260246000fd5b92915050565b610a24806200044a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806342966c681161007157806342966c681461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce919061083a565b60405180910390f35b6100ea6100e53660046108a4565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046108ce565b61026c565b604051601281526020016100ce565b6100ea61013c3660046108a4565b610290565b61015461014f36600461090a565b6102b2565b005b6100fe610164366004610923565b6001600160a01b031660009081526020819052604090205490565b6100c16102bf565b6100ea6101953660046108a4565b6102ce565b6100ea6101a83660046108a4565b61034e565b6100fe6101bb366004610945565b61035c565b6060600380546101cf90610978565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb90610978565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610387565b60019150505b92915050565b60003361027a8582856104ac565b610285858585610526565b506001949350505050565b6000336102608185856102a3838361035c565b6102ad91906109c8565b610387565b6102bc33826106f4565b50565b6060600480546101cf90610978565b600033816102dc828661035c565b9050838110156103415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102858286868403610387565b600033610260818585610526565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610338565b6001600160a01b03821661044a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610338565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006104b8848461035c565b9050600019811461052057818110156105135760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610338565b6105208484848403610387565b50505050565b6001600160a01b03831661058a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610338565b6001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610338565b6001600160a01b038316600090815260208190526040902054818110156106645760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610338565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061069b9084906109c8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e791815260200190565b60405180910390a3610520565b6001600160a01b0382166107545760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610338565b6001600160a01b038216600090815260208190526040902054818110156107c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610338565b6001600160a01b03831660009081526020819052604081208383039055600280548492906107f79084906109db565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161049f565b600060208083528351808285015260005b818110156108675785810183015185820160400152820161084b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089f57600080fd5b919050565b600080604083850312156108b757600080fd5b6108c083610888565b946020939093013593505050565b6000806000606084860312156108e357600080fd5b6108ec84610888565b92506108fa60208501610888565b9150604084013590509250925092565b60006020828403121561091c57600080fd5b5035919050565b60006020828403121561093557600080fd5b61093e82610888565b9392505050565b6000806040838503121561095857600080fd5b61096183610888565b915061096f60208401610888565b90509250929050565b600181811c9082168061098c57607f821691505b6020821081036109ac57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610266576102666109b2565b81810381811115610266576102666109b256fea26469706673582212206f580637e2726840ddefd5197269032aa3ba94a5d49ec58f0f176cc76bec3ecd64736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b50600436106100b45760003560e01c806342966c681161007157806342966c681461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce919061083a565b60405180910390f35b6100ea6100e53660046108a4565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046108ce565b61026c565b604051601281526020016100ce565b6100ea61013c3660046108a4565b610290565b61015461014f36600461090a565b6102b2565b005b6100fe610164366004610923565b6001600160a01b031660009081526020819052604090205490565b6100c16102bf565b6100ea6101953660046108a4565b6102ce565b6100ea6101a83660046108a4565b61034e565b6100fe6101bb366004610945565b61035c565b6060600380546101cf90610978565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb90610978565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610387565b60019150505b92915050565b60003361027a8582856104ac565b610285858585610526565b506001949350505050565b6000336102608185856102a3838361035c565b6102ad91906109c8565b610387565b6102bc33826106f4565b50565b6060600480546101cf90610978565b600033816102dc828661035c565b9050838110156103415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102858286868403610387565b600033610260818585610526565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610338565b6001600160a01b03821661044a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610338565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006104b8848461035c565b9050600019811461052057818110156105135760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610338565b6105208484848403610387565b50505050565b6001600160a01b03831661058a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610338565b6001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610338565b6001600160a01b038316600090815260208190526040902054818110156106645760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610338565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061069b9084906109c8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e791815260200190565b60405180910390a3610520565b6001600160a01b0382166107545760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610338565b6001600160a01b038216600090815260208190526040902054818110156107c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610338565b6001600160a01b03831660009081526020819052604081208383039055600280548492906107f79084906109db565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161049f565b600060208083528351808285015260005b818110156108675785810183015185820160400152820161084b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089f57600080fd5b919050565b600080604083850312156108b757600080fd5b6108c083610888565b946020939093013593505050565b6000806000606084860312156108e357600080fd5b6108ec84610888565b92506108fa60208501610888565b9150604084013590509250925092565b60006020828403121561091c57600080fd5b5035919050565b60006020828403121561093557600080fd5b61093e82610888565b9392505050565b6000806040838503121561095857600080fd5b61096183610888565b915061096f60208401610888565b90509250929050565b600181811c9082168061098c57607f821691505b6020821081036109ac57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610266576102666109b2565b81810381811115610266576102666109b256fea26469706673582212206f580637e2726840ddefd5197269032aa3ba94a5d49ec58f0f176cc76bec3ecd64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/LearnToEarn.sol:LearnToEarn": {"srcmap": "798:11064:34:-:0;;;;;;;;;;;;;;;;;;;", "srcmap-runtime": "798:11064:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11022:156;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6349:1916;;;;;;:::i;:::-;;:::i;:::-;;8444:661;;;;;;:::i;:::-;;:::i;2071:101:0:-;;;:::i;2058:108:34:-;;;:::i;1441:85:0:-;1513:6;;1441:85;;-1:-1:-1;;;;;1513:6:0;;;3336:51:50;;3324:2;3309:18;1441:85:0;3190:203:50;9321:499:34;;;;;;:::i;:::-;;:::i;2825:2116::-;;;;;;:::i;:::-;;:::i;5131:704::-;;;;;;:::i;:::-;;:::i;10713:125::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2321:198:0:-;;;;;;:::i;:::-;;:::i;10024:563:34:-;;;;;;:::i;:::-;;:::i;:::-;;;6526:14:50;;6519:22;6501:41;;6489:2;6474:18;10024:563:34;6361:187:50;11022:156:34;11106:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11106:14:34;11139:22;;;;:11;:22;;;;;;;;-1:-1:-1;;;;;11139:32:34;;;;;;;;;;11132:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11139:32;;11132:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11022:156;;;;;:::o;6349:1916::-;1563:21;;;;:10;:21;;;;;:29;6549:9;;-1:-1:-1;;;;;1563:29:34;929:10:12;1563:45:34;1555:86;;;;-1:-1:-1;;;1555:86:34;;;;;;;:::i;:::-;;;;;;;;;1844:21:::1;::::0;;;:10:::1;:21;::::0;;;;:33:::1;;::::0;6573:9;;1844:38;1836:74:::1;;;;-1:-1:-1::0;;;1836:74:34::1;;;;;;;:::i;:::-;6594:21:::2;6618::::0;;;:10:::2;:21;::::0;;;;6657:18:::2;::::0;::::2;::::0;:34;-1:-1:-1;6657:34:34;::::2;::::0;:68:::2;;;6710:15;6695:12;:30;6657:68;6649:99;;;::::0;-1:-1:-1;;;6649:99:34;;7464:2:50;6649:99:34::2;::::0;::::2;7446:21:50::0;7503:2;7483:18;;;7476:30;-1:-1:-1;;;7522:18:50;;;7515:48;7580:18;;6649:99:34::2;7262:342:50::0;6649:99:34::2;6783:12;6766:14;:29;6758:63;;;::::0;-1:-1:-1;;;6758:63:34;;7811:2:50;6758:63:34::2;::::0;::::2;7793:21:50::0;7850:2;7830:18;;;7823:30;-1:-1:-1;;;7869:18:50;;;7862:51;7930:18;;6758:63:34::2;7609:345:50::0;6758:63:34::2;6832:23;6858:22:::0;;;:11:::2;:22;::::0;;;;;;;-1:-1:-1;;;;;6858:32:34;::::2;::::0;;;;;;;6908:21:::2;::::0;::::2;::::0;:26;6900:56:::2;;;::::0;-1:-1:-1;;;6900:56:34;;8161:2:50;6900:56:34::2;::::0;::::2;8143:21:50::0;8200:2;8180:18;;;8173:30;-1:-1:-1;;;8219:18:50;;;8212:47;8276:18;;6900:56:34::2;7959:341:50::0;6900:56:34::2;6967:34:::0;;;:19:::2;7037:48;7049:9:::0;7060:8;7070:14;7037:11:::2;:48::i;:::-;7096:21;::::0;::::2;:38:::0;;;7011:74;-1:-1:-1;7145:1062:34;::::2;;;7209:6;:12;;;7183:6;:22;;;:38;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;7235:32:34::2;::::0;::::2;:34:::0;;;:32:::2;:34;::::0;::::2;:::i;:::-;::::0;;;-1:-1:-1;;7307:15:34::2;7284:20;::::0;::::2;:38:::0;7341:19:::2;::::0;::::2;::::0;::::2;;7337:755;;;7443:12;::::0;::::2;::::0;7398:20:::2;::::0;::::2;::::0;7380:76:::2;::::0;-1:-1:-1;;;;;7398:20:34;;::::2;::::0;7433:8;;7380:52:::2;:76::i;:::-;7337:755;;;7499:17;::::0;::::2;::::0;::::2;::::0;::::2;;;7495:583;;;7545:9;7540:160;7564:6;:12;;;7560:1;:16;7540:160;;;7640:20;::::0;::::2;::::0;7629:47:::2;::::0;-1:-1:-1;;;7629:47:34;;-1:-1:-1;;;;;3354:32:50;;;7629:47:34::2;::::0;::::2;3336:51:50::0;7609:14:34::2;::::0;::::2;::::0;7640:20:::2;::::0;7629:37:::2;::::0;3309:18:50;;7629:47:34::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7609:68:::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;7609:68:34;;;::::2;::::0;;;;;::::2;::::0;7578:3;::::2;::::0;::::2;:::i;:::-;;;;7540:160;;;;7495:583;;;7772:6;:12;;;7754:7;:14;:30;7746:58;;;::::0;-1:-1:-1;;;7746:58:34;;9101:2:50;7746:58:34::2;::::0;::::2;9083:21:50::0;9140:2;9120:18;;;9113:30;-1:-1:-1;;;9159:18:50;;;9152:45;9214:18;;7746:58:34::2;8899:339:50::0;7746:58:34::2;7827:24:::0;;::::2;::::0;:14:::2;::::0;::::2;::::0;:24:::2;::::0;::::2;::::0;::::2;:::i;:::-;;7878:9;7873:187;7897:7;:14;7893:1;:18;7873:187;;;7963:20;::::0;::::2;::::0;-1:-1:-1;;;;;7963:20:34::2;7944:57;929:10:12::0;8016:8:34::2;8026:7;8034:1;8026:10;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;7944:93:::2;::::0;-1:-1:-1;;;;;;7944:93:34::2;::::0;;;;;;-1:-1:-1;;;;;9633:15:50;;;7944:93:34::2;::::0;::::2;9615:34:50::0;9685:15;;;;9665:18;;;9658:43;9717:18;;;9710:34;9550:18;;7944:93:34::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;7913:3;;;;;:::i;:::-;;;;7873:187;;;;7495:583;8145:20;::::0;::::2;::::0;8167:12:::2;::::0;::::2;::::0;8110:86:::2;::::0;-1:-1:-1;;;;;8145:20:34;;::::2;::::0;8110:86;::::2;::::0;8124:9;;8110:86:::2;::::0;::::2;::::0;8181:14:::2;::::0;::::2;::::0;8110:86:::2;:::i;:::-;;;;;;;;7145:1062;8222:36;::::0;-1:-1:-1;;;;;3354:32:50;;3336:51;;8238:9:34;;8222:36:::2;::::0;3324:2:50;3309:18;8222:36:34::2;;;;;;;6584:1681;;;1651:1:::1;6349:1916:::0;;;;;;:::o;8444:661::-;1563:21;;;;:10;:21;;;;;:29;8508:9;;-1:-1:-1;;;;;1563:29:34;929:10:12;1563:45:34;1555:86;;;;-1:-1:-1;;;1555:86:34;;;;;;;:::i;:::-;1844:21:::1;::::0;;;:10:::1;:21;::::0;;;;:33:::1;;::::0;8532:9;;1844:38;1836:74:::1;;;;-1:-1:-1::0;;;1836:74:34::1;;;;;;;:::i;:::-;8553:21:::2;8577::::0;;;:10:::2;:21;::::0;;;;8616:19:::2;::::0;::::2;::::0;::::2;;8608:46;;;::::0;-1:-1:-1;;;8608:46:34;;10688:2:50;8608:46:34::2;::::0;::::2;10670:21:50::0;10727:2;10707:18;;;10700:30;-1:-1:-1;;;10746:18:50;;;10739:44;10800:18;;8608:46:34::2;10486:338:50::0;8608:46:34::2;8697:1;8672:6;:22;;;:26;8664:52;;;::::0;-1:-1:-1;;;8664:52:34;;11031:2:50;8664:52:34::2;::::0;::::2;11013:21:50::0;11070:2;11050:18;;;11043:30;-1:-1:-1;;;11089:18:50;;;11082:43;11142:18;;8664:52:34::2;10829:337:50::0;8664:52:34::2;8734:22;::::0;::::2;::::0;;;::::2;;;::::0;:93:::2;;-1:-1:-1::0;8761:19:34::2;::::0;::::2;::::0;:24;;::::2;::::0;:65:::2;;;8807:6;:19;;;8789:15;:37;8761:65;8726:130;;;::::0;-1:-1:-1;;;8726:130:34;;11373:2:50;8726:130:34::2;::::0;::::2;11355:21:50::0;11412:2;11392:18;;;11385:30;11451:26;11431:18;;;11424:54;11495:18;;8726:130:34::2;11171:348:50::0;8726:130:34::2;8885:22;::::0;::::2;::::0;;8867:15:::2;8918:26:::0;;;9007:14;;-1:-1:-1;8972:20:34;::::2;::::0;8954:77:::2;::::0;-1:-1:-1;;;;;8972:20:34;;::::2;::::0;9007:14:::2;8885:22:::0;8954:52:::2;:77::i;:::-;9074:14:::0;;9047:51:::2;::::0;11670:25:50;;;-1:-1:-1;;;;;9074:14:34;;::::2;::::0;9063:9;;9047:51:::2;::::0;11658:2:50;11643:18;9047:51:34::2;;;;;;;8543:562;;1651:1:::1;8444:661:::0;;:::o;2071:101:0:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2058:108:34:-;3111:19:1;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:1;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:1;1476:19:11;:23;;;3219:66:1;;-1:-1:-1;3268:12:1;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:1;;11908:2:50;3157:201:1;;;11890:21:50;11947:2;11927:18;;;11920:30;11986:34;11966:18;;;11959:62;-1:-1:-1;;;12037:18:50;;;12030:44;12091:19;;3157:201:1;11706:410:50;3157:201:1;3368:12;:16;;-1:-1:-1;;3368:16:1;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:1;;;;;3394:65;2109:16:34::1;:14;:16::i;:::-;2135:24;:22;:24::i;:::-;3483:14:1::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:1;;;3553:14;;-1:-1:-1;12273:36:50;;3553:14:1;;12261:2:50;12246:18;3553:14:1;;;;;;;3479:99;3101:483;2058:108:34:o;9321:499::-;1563:21;;;;:10;:21;;;;;:29;9383:9;;-1:-1:-1;;;;;1563:29:34;929:10:12;1563:45:34;1555:86;;;;-1:-1:-1;;;1555:86:34;;;;;;;:::i;:::-;1844:21:::1;::::0;;;:10:::1;:21;::::0;;;;:33:::1;;::::0;9407:9;;1844:38;1836:74:::1;;;;-1:-1:-1::0;;;1836:74:34::1;;;;;;;:::i;:::-;9428:21:::2;9452::::0;;;:10:::2;:21;::::0;;;;9504:15:::2;9483:18;::::0;::::2;:36:::0;9548:22:::2;::::0;::::2;::::0;;9580:26;;;9621:19:::2;::::0;::::2;::::0;9452:21;;9548:22;9621:19:::2;;:34:::0;::::2;;;;9654:1;9644:7;:11;9621:34;9617:142;;;9724:14:::0;;;9689:20;::::2;::::0;9671:77:::2;::::0;-1:-1:-1;;;;;9689:20:34;;::::2;::::0;9724:14:::2;9740:7:::0;9671:52:::2;:77::i;:::-;9798:14:::0;;9773:40:::2;::::0;-1:-1:-1;;;;;9798:14:34;;::::2;::::0;9787:9;;9773:40:::2;::::0;9798:14:::2;::::0;9773:40:::2;9418:402;;1651:1:::1;9321:499:::0;;:::o;2825:2116::-;3069:7;1316:1;1306:7;:11;1298:35;;;;-1:-1:-1;;;1298:35:34;;;;;;;:::i;:::-;3086:6:::1;1316:1;1306:7;:11;1298:35;;;;-1:-1:-1::0;;;1298:35:34::1;;;;;;;:::i;:::-;1815:1:2::2;2569:7;;:19:::0;2561:63:::2;;;::::0;-1:-1:-1;;;2561:63:2;;12862:2:50;2561:63:2::2;::::0;::::2;12844:21:50::0;12901:2;12881:18;;;12874:30;12940:33;12920:18;;;12913:61;12991:18;;2561:63:2::2;12660:355:50::0;2561:63:2::2;1815:1;2699:7;:18:::0;-1:-1:-1;;;;;3125:28:34;::::3;3117:63;;;::::0;-1:-1:-1;;;3117:63:34;;13222:2:50;3117:63:34::3;::::0;::::3;13204:21:50::0;13261:2;13241:18;;;13234:30;-1:-1:-1;;;13280:18:50;;;13273:52;13342:18;;3117:63:34::3;13020:346:50::0;3117:63:34::3;3209:6;3198:7;:17;;3190:44;;;::::0;-1:-1:-1;;;3190:44:34;;13573:2:50;3190:44:34::3;::::0;::::3;13555:21:50::0;13612:2;13592:18;;;13585:30;-1:-1:-1;;;13631:18:50;;;13624:44;13685:18;;3190:44:34::3;13371:338:50::0;3190:44:34::3;3247:15:::0;;3244:123:::3;;3286:15;3272:10;:29;;3264:60;;;::::0;-1:-1:-1;;;3264:60:34;;7464:2:50;3264:60:34::3;::::0;::::3;7446:21:50::0;7503:2;7483:18;;;7476:30;-1:-1:-1;;;7522:18:50;;;7515:48;7580:18;;3264:60:34::3;7262:342:50::0;3264:60:34::3;3244:123;;;3352:15;3339:28;;3244:123;3378:24;3405:16;:91;;3447:18:::0;;;:48:::3;;;3485:10;3469:13;:26;3447:48;3405:91;;;3441:1;3425:13;:17;3405:91;3378:118;;3514:19;3506:54;;;::::0;-1:-1:-1;;;3506:54:34;;13916:2:50;3506:54:34::3;::::0;::::3;13898:21:50::0;13955:2;13935:18;;;13928:30;-1:-1:-1;;;13974:18:50;;;13967:52;14036:18;;3506:54:34::3;13714:346:50::0;3506:54:34::3;3571:17;3591:19;:17;:19::i;:::-;3571:39;;3620:16;3659:13;3654:551;;3825:62;-1:-1:-1::0;;;;;3825:32:34;::::3;-1:-1:-1::0;;;3825:32:34::3;:62::i;:::-;3811:76;;3907:11;3902:293;;3946:70;-1:-1:-1::0;;;;;3946:32:34;::::3;-1:-1:-1::0;;;3946:32:34::3;:70::i;:::-;3938:112;;;::::0;-1:-1:-1;;;3938:112:34;;14267:2:50;3938:112:34::3;::::0;::::3;14249:21:50::0;14306:2;14286:18;;;14279:30;14345:31;14325:18;;;14318:59;14394:18;;3938:112:34::3;14065:353:50::0;3938:112:34::3;4138:7:::0;-1:-1:-1;;;;;4076:44:34;::::3;;929:10:12::0;4076:58:34::3;::::0;-1:-1:-1;;;;;;4076:58:34::3;::::0;;;;;;-1:-1:-1;;;;;3354:32:50;;;4076:58:34::3;::::0;::::3;3336:51:50::0;3309:18;;4076:58:34::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:69;;4068:112;;;::::0;-1:-1:-1;;;4068:112:34;;14625:2:50;4068:112:34::3;::::0;::::3;14607:21:50::0;14664:2;14644:18;;;14637:30;14703:32;14683:18;;;14676:60;14753:18;;4068:112:34::3;14423:354:50::0;4068:112:34::3;4239:463;;;;;;;;4269:12;929:10:12::0;;850:96;4269:12:34::3;-1:-1:-1::0;;;;;4239:463:34::3;;;;;4310:14;-1:-1:-1::0;;;;;4239:463:34::3;;;;;4346:7;4239:463;;;;4384:7;4239:463;;;;4412:6;4239:463;;;;4459:1;4239:463;;;;4487:10;4239:463;;;;4525:13;4239:463;;;;4565:1;4239:463;;;;4641:13;4239:463;;;;;;4680:11;4239:463;;;;;;4597:16;4239:463;;;;::::0;4215:10:::3;:21;4226:9;4215:21;;;;;;;;;;;:487;;;;;;;;;;;;;-1:-1:-1::0;;;;;4215:487:34::3;;;;;-1:-1:-1::0;;;;;4215:487:34::3;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;4215:487:34::3;;;;;-1:-1:-1::0;;;;;4215:487:34::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4717:13;4713:132;;;4746:88;-1:-1:-1::0;;;;;4746:50:34;::::3;929:10:12::0;4819:4:34::3;4826:7:::0;4746:50:::3;:88::i;:::-;4860:74;::::0;;929:10:12;15051:34:50;;-1:-1:-1;;;;;15121:15:50;;15116:2;15101:18;;15094:43;15153:18;;;15146:34;;;15211:2;15196:18;;15189:34;;;4874:9:34;;4860:74:::3;::::0;15000:3:50;14985:19;4860:74:34::3;;;;;;;-1:-1:-1::0;;1772:1:2::2;2872:22:::0;;-1:-1:-1;;;;;;;;;;2825:2116:34:o;5131:704::-;1563:21;;;;:10;:21;;;;;:29;5207:9;;-1:-1:-1;;;;;1563:29:34;929:10:12;1563:45:34;1555:86;;;;-1:-1:-1;;;1555:86:34;;;;;;;:::i;:::-;5226:7:::1;1316:1;1306:7;:11;1298:35;;;;-1:-1:-1::0;;;1298:35:34::1;;;;;;;:::i;:::-;1844:21:::2;::::0;;;:10:::2;:21;::::0;;;;:33:::2;;::::0;5248:9;;1844:38;1836:74:::2;;;;-1:-1:-1::0;;;1836:74:34::2;;;;;;;:::i;:::-;1815:1:2::3;2569:7;;:19:::0;2561:63:::3;;;::::0;-1:-1:-1;;;2561:63:2;;12862:2:50;2561:63:2::3;::::0;::::3;12844:21:50::0;12901:2;12881:18;;;12874:30;12940:33;12920:18;;;12913:61;12991:18;;2561:63:2::3;12660:355:50::0;2561:63:2::3;1815:1;2699:7;:18:::0;;;5282:21:34::4;5306::::0;;;:10:::4;:21;::::0;;;;5338:13;;::::4;:24:::0;;5355:7;;5282:21;5338:24:::4;::::0;5355:7;;5338:24:::4;:::i;:::-;;;;;;;;5398:7;5372:6;:22;;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;5420:19:34::4;::::0;::::4;::::0;::::4;;5416:366;;;5455:94;929:10:12::0;5473:20:34::4;::::0;::::4;::::0;-1:-1:-1;;;;;5473:20:34::4;::::0;5534:4:::4;5541:7:::0;5455:56:::4;:94::i;:::-;5416:366;;;5585:17;::::0;::::4;::::0;::::4;::::0;::::4;;;5580:192;;5698:22;::::0;::::4;::::0;5649:20:::4;::::0;::::4;::::0;-1:-1:-1;;;;;5649:20:34::4;5630:50;929:10:12::0;5630:64:34::4;::::0;-1:-1:-1;;;;;;5630:64:34::4;::::0;;;;;;-1:-1:-1;;;;;3354:32:50;;;5630:64:34::4;::::0;::::4;3336:51:50::0;3309:18;;5630:64:34::4;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:90;;5622:135;;;::::0;-1:-1:-1;;;5622:135:34;;15566:2:50;5622:135:34::4;::::0;::::4;15548:21:50::0;;;15585:18;;;15578:30;15644:34;15624:18;;;15617:62;15696:18;;5622:135:34::4;15364:356:50::0;5622:135:34::4;5809:9;5797:31;5820:7;5797:31;;;;11670:25:50::0;;11658:2;11643:18;;11524:177;5797:31:34::4;;;;;;;;-1:-1:-1::0;;1772:1:2::3;2872:22:::0;;-1:-1:-1;;;;5131:704:34:o;10713:125::-;10778:13;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10778:13:34;-1:-1:-1;10810:21:34;;;;:10;:21;;;;;;;;;10803:28;;;;;;;;;-1:-1:-1;;;;;10803:28:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10713:125::o;2321:198:0:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:0;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:0;;15927:2:50;2401:73:0::1;::::0;::::1;15909:21:50::0;15966:2;15946:18;;;15939:30;16005:34;15985:18;;;15978:62;-1:-1:-1;;;16056:18:50;;;16049:36;16102:19;;2401:73:0::1;15725:402:50::0;2401:73:0::1;2484:28;2503:8;2484:18;:28::i;10024:563:34:-:0;10127:4;10187:21;;;:10;:21;;;;;:27;;;;10147:37;;;;;:67;;:123;;-1:-1:-1;10268:1:34;10219:22;;;:11;:22;;;;;;;;-1:-1:-1;;;;;10219:32:34;;;;;;;;;:46;;;:50;;10147:123;10143:141;;;-1:-1:-1;10279:5:34;10272:12;;10143:141;10299:21;;;;:10;:21;;;;;:37;;;;;;;;10295:174;;;10424:21;;;;:10;:21;;;;;;;;:34;;;10377:11;:22;;;;;-1:-1:-1;;;;;10377:32:34;;;;;;;;;;:44;:81;;10424:34;10377:81;:::i;:::-;10359:14;:99;;10352:106;;;;10295:174;10485:21;;;;:10;:21;;;;;:34;;;:39;;:95;;-1:-1:-1;10546:21:34;;;;:10;:21;;;;;:34;;;10528:52;;;10485:95;10478:102;;10024:563;;;;;;:::o;818:216:5:-;968:58;;-1:-1:-1;;;;;16324:32:50;;968:58:5;;;16306:51:50;16373:18;;;16366:34;;;941:86:5;;961:5;;-1:-1:-1;;;991:23:5;16279:18:50;;968:58:5;;;;-1:-1:-1;;968:58:5;;;;;;;;;;;;;;-1:-1:-1;;;;;968:58:5;-1:-1:-1;;;;;;968:58:5;;;;;;;;;;941:19;:86::i;:::-;818:216;;;:::o;1599:130:0:-;1513:6;;-1:-1:-1;;;;;1513:6:0;929:10:12;1662:23:0;1654:68;;;;-1:-1:-1;;;1654:68:0;;16613:2:50;1654:68:0;;;16595:21:50;;;16632:18;;;16625:30;16691:34;16671:18;;;16664:62;16743:18;;1654:68:0;16411:356:50;2673:187:0;2765:6;;;-1:-1:-1;;;;;2781:17:0;;;-1:-1:-1;;;;;;2781:17:0;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;1003:95::-;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1065:26:0::1;:24;:26::i;1853:111:2:-:0;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1923:34:2::1;:32;:34::i;11667:193:34:-:0;11718:17;11759:14;11771:1;11759:11;:14::i;:::-;11791:21;;;;:10;:21;;;;;:33;;;11747:26;;-1:-1:-1;11791:38:34;11783:70;;;;-1:-1:-1;;;11783:70:34;;17386:2:50;11783:70:34;;;17368:21:50;17425:2;17405:18;;;17398:30;-1:-1:-1;;;17444:18:50;;;17437:49;17503:18;;11783:70:34;17184:343:50;11783:70:34;11667:193;:::o;1366:274:14:-;1453:4;1560:23;1575:7;1560:14;:23::i;:::-;:73;;;;;1587:46;1612:7;1621:11;1587:24;:46::i;1040:252:5:-;1216:68;;-1:-1:-1;;;;;9633:15:50;;;1216:68:5;;;9615:34:50;9685:15;;9665:18;;;9658:43;9717:18;;;9710:34;;;1189:96:5;;1209:5;;-1:-1:-1;;;1239:27:5;9550:18:50;;1216:68:5;9375:375:50;1189:96:5;1040:252;;;;:::o;3868:717::-;4298:23;4324:69;4352:4;4324:69;;;;;;;;;;;;;;;;;4332:5;-1:-1:-1;;;;;4324:27:5;;;:69;;;;;:::i;:::-;4407:17;;4298:95;;-1:-1:-1;4407:21:5;4403:176;;4502:10;4491:30;;;;;;;;;;;;:::i;:::-;4483:85;;;;-1:-1:-1;;;4483:85:5;;17984:2:50;4483:85:5;;;17966:21:50;18023:2;18003:18;;;17996:30;18062:34;18042:18;;;18035:62;-1:-1:-1;;;18113:18:50;;;18106:40;18163:19;;4483:85:5;17782:406:50;1104:111:0;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1176:32:0::1;929:10:12::0;1176:18:0::1;:32::i;1970:109:2:-:0;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1772:1:2::1;2050:22:::0;;1970:109::o;11385:170:34:-;11444:7;929:10:12;11521:16:34;11536:1;11521:12;:16;:::i;:::-;11480:67;;18398:2:50;18394:15;;;;-1:-1:-1;;18390:53:50;11480:67:34;;;18378:66:50;11511:27:34;18460:12:50;;;18453:28;18497:12;;;18490:28;;;18534:12;;11480:67:34;;;;;;;;;;;;11470:78;;;;;;11463:85;;11385:170;;;:::o;726:422:14:-;790:4;997:71;1022:7;-1:-1:-1;;;997:24:14;:71::i;:::-;:144;;;;-1:-1:-1;1085:56:14;1110:7;-1:-1:-1;;;;;;1085:24:14;:56::i;:::-;1084:57;978:163;726:422;-1:-1:-1;;726:422:14:o;4256:649::-;4418:82;;;-1:-1:-1;;;;;;18719:33:50;;4418:82:14;;;;18701:52:50;;;;4418:82:14;;;;;;;;;;18674:18:50;;;;4418:82:14;;;;;;;;;-1:-1:-1;;;;;4418:82:14;-1:-1:-1;;;4418:82:14;;;4708:20;;4349:4;;4418:82;4349:4;;;;;;4418:82;4349:4;;4708:20;4673:7;4666:5;4655:86;4644:97;;4768:16;4754:30;;4818:4;4812:11;4797:26;;4850:7;:29;;;;;4875:4;4861:10;:18;;4850:29;:48;;;;;4897:1;4883:11;:15;4850:48;4843:55;4256:649;-1:-1:-1;;;;;;;4256:649:14:o;3872:223:11:-;4005:12;4036:52;4058:6;4066:4;4072:1;4075:12;4005;-1:-1:-1;;;;;1476:19:11;;;5239:60;;;;-1:-1:-1;;;5239:60:11;;19373:2:50;5239:60:11;;;19355:21:50;19412:2;19392:18;;;19385:30;19451:31;19431:18;;;19424:59;19500:18;;5239:60:11;19171:353:50;5239:60:11;5311:12;5325:23;5352:6;-1:-1:-1;;;;;5352:11:11;5371:5;5378:4;5352:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5310:73;;;;5400:51;5417:7;5426:10;5438:12;6768;6796:7;6792:566;;;-1:-1:-1;6826:10:11;6819:17;;6792:566;6937:17;;:21;6933:415;;7181:10;7175:17;7241:15;7228:10;7224:2;7220:19;7213:44;6933:415;7320:12;7313:20;;-1:-1:-1;;;7313:20:11;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:50;82:20;;-1:-1:-1;;;;;131:31:50;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;373:9;360:23;350:33;;402:38;436:2;425:9;421:18;402:38;:::i;:::-;392:48;;192:254;;;;;:::o;451:908::-;593:4;622:2;651;640:9;633:21;692:3;681:9;677:19;738:6;732:13;727:2;716:9;712:18;705:41;800:2;792:6;788:15;782:22;777:2;766:9;762:18;755:50;859:2;851:6;847:15;841:22;836:2;825:9;821:18;814:50;911:2;903:6;899:15;893:22;953:4;946;935:9;931:20;924:34;978:6;1013:12;1007:19;1050:6;1042;1035:22;1088:3;1077:9;1073:19;1066:26;;1133:2;1119:12;1115:21;1101:35;;1154:1;1145:10;;1164:169;1178:6;1175:1;1172:13;1164:169;;;1239:13;;1227:26;;1308:15;;;;1200:1;1193:9;;;;;1273:12;;;;1164:169;;;-1:-1:-1;1350:3:50;451:908;-1:-1:-1;;;;;;451:908:50:o;1364:127::-;1425:10;1420:3;1416:20;1413:1;1406:31;1456:4;1453:1;1446:15;1480:4;1477:1;1470:15;1496:1395;1616:6;1624;1632;1640;1648;1701:3;1689:9;1680:7;1676:23;1672:33;1669:53;;;1718:1;1715;1708:12;1669:53;1754:9;1741:23;1731:33;;1783:2;1804:38;1838:2;1827:9;1823:18;1804:38;:::i;:::-;1794:48;;1889:2;1878:9;1874:18;1861:32;1851:42;;1940:2;1929:9;1925:18;1912:32;1902:42;;1995:3;1984:9;1980:19;1967:33;2019:18;2060:2;2052:6;2049:14;2046:34;;;2076:1;2073;2066:12;2046:34;2114:6;2103:9;2099:22;2089:32;;2159:7;2152:4;2148:2;2144:13;2140:27;2130:55;;2181:1;2178;2171:12;2130:55;2217:2;2204:16;2239:2;2235;2232:10;2229:36;;;2245:18;;:::i;:::-;2291:2;2288:1;2284:10;2323:2;2317:9;2386:2;2382:7;2377:2;2373;2369:11;2365:25;2357:6;2353:38;2441:6;2429:10;2426:22;2421:2;2409:10;2406:18;2403:46;2400:72;;;2452:18;;:::i;:::-;2488:2;2481:22;2538:18;;;2572:15;;;;-1:-1:-1;2614:11:50;;;2610:20;;;2642:19;;;2639:39;;;2674:1;2671;2664:12;2639:39;2698:11;;;;2718:142;2734:6;2729:3;2726:15;2718:142;;;2800:17;;2788:30;;2751:12;;;;2838;;;;2718:142;;;2879:6;2869:16;;;;;;;;1496:1395;;;;;;;;:::o;2896:180::-;2955:6;3008:2;2996:9;2987:7;2983:23;2979:32;2976:52;;;3024:1;3021;3014:12;2976:52;-1:-1:-1;3047:23:50;;2896:180;-1:-1:-1;2896:180:50:o;3398:118::-;3484:5;3477:13;3470:21;3463:5;3460:32;3450:60;;3506:1;3503;3496:12;3521:726;3628:6;3636;3644;3652;3660;3668;3676;3729:3;3717:9;3708:7;3704:23;3700:33;3697:53;;;3746:1;3743;3736:12;3697:53;3769:29;3788:9;3769:29;:::i;:::-;3759:39;;3845:2;3834:9;3830:18;3817:32;3807:42;;3896:2;3885:9;3881:18;3868:32;3858:42;;3947:2;3936:9;3932:18;3919:32;3909:42;;3998:3;3987:9;3983:19;3970:33;3960:43;;4053:3;4042:9;4038:19;4025:33;4067:28;4089:5;4067:28;:::i;:::-;4114:5;-1:-1:-1;4171:3:50;4156:19;;4143:33;4185:30;4143:33;4185:30;:::i;:::-;4234:7;4224:17;;;3521:726;;;;;;;;;;:::o;4252:248::-;4320:6;4328;4381:2;4369:9;4360:7;4356:23;4352:32;4349:52;;;4397:1;4394;4387:12;4349:52;-1:-1:-1;;4420:23:50;;;4490:2;4475:18;;;4462:32;;-1:-1:-1;4252:248:50:o;4601:1237::-;4815:13;;-1:-1:-1;;;;;3147:31:50;3135:44;;4783:3;4768:19;;4887:4;4879:6;4875:17;4869:24;4902:54;4950:4;4939:9;4935:20;4921:12;-1:-1:-1;;;;;3147:31:50;3135:44;;3081:104;4902:54;;5012:4;5004:6;5000:17;4994:24;4987:4;4976:9;4972:20;4965:54;5075:4;5067:6;5063:17;5057:24;5050:4;5039:9;5035:20;5028:54;5138:4;5130:6;5126:17;5120:24;5113:4;5102:9;5098:20;5091:54;5201:4;5193:6;5189:17;5183:24;5176:4;5165:9;5161:20;5154:54;5264:4;5256:6;5252:17;5246:24;5239:4;5228:9;5224:20;5217:54;5327:4;5319:6;5315:17;5309:24;5302:4;5291:9;5287:20;5280:54;5353:6;5413:2;5405:6;5401:15;5395:22;5390:2;5379:9;5375:18;5368:50;;5437:6;5492:2;5484:6;5480:15;5474:22;5505:51;5552:2;5541:9;5537:18;5521:14;4575:13;4568:21;4556:34;;4505:91;5505:51;-1:-1:-1;;5575:6:50;5618:15;;;5612:22;4575:13;4568:21;5675:18;;;4556:34;5713:6;5756:15;;;5750:22;4575:13;4568:21;5813:18;;;;4556:34;;;;4601:1237;:::o;5843:186::-;5902:6;5955:2;5943:9;5934:7;5930:23;5926:32;5923:52;;;5971:1;5968;5961:12;5923:52;5994:29;6013:9;5994:29;:::i;6034:322::-;6111:6;6119;6127;6180:2;6168:9;6159:7;6155:23;6151:32;6148:52;;;6196:1;6193;6186:12;6148:52;6232:9;6219:23;6209:33;;6261:38;6295:2;6284:9;6280:18;6261:38;:::i;:::-;6251:48;;6346:2;6335:9;6331:18;6318:32;6308:42;;6034:322;;;;;:::o;6553:352::-;6755:2;6737:21;;;6794:2;6774:18;;;6767:30;6833;6828:2;6813:18;;6806:58;6896:2;6881:18;;6553:352::o;6910:347::-;7112:2;7094:21;;;7151:2;7131:18;;;7124:30;7190:25;7185:2;7170:18;;7163:53;7248:2;7233:18;;6910:347::o;8305:127::-;8366:10;8361:3;8357:20;8354:1;8347:31;8397:4;8394:1;8387:15;8421:4;8418:1;8411:15;8437:128;8504:9;;;8525:11;;;8522:37;;;8539:18;;:::i;8570:135::-;8609:3;8630:17;;;8627:43;;8650:18;;:::i;:::-;-1:-1:-1;8697:1:50;8686:13;;8570:135::o;8710:184::-;8780:6;8833:2;8821:9;8812:7;8808:23;8804:32;8801:52;;;8849:1;8846;8839:12;8801:52;-1:-1:-1;8872:16:50;;8710:184;-1:-1:-1;8710:184:50:o;9243:127::-;9304:10;9299:3;9295:20;9292:1;9285:31;9335:4;9332:1;9325:15;9359:4;9356:1;9349:15;9755:726;9922:4;9970:2;9959:9;9955:18;10000:6;9989:9;9982:25;10026:2;10064;10059;10048:9;10044:18;10037:30;10087:6;10122;10116:13;10153:6;10145;10138:22;10191:2;10180:9;10176:18;10169:25;;10213:6;10210:1;10203:17;10256:2;10253:1;10243:16;10229:30;;10277:1;10287:168;10301:6;10298:1;10295:13;10287:168;;;10362:13;;10350:26;;10443:1;10431:14;;;;10396:12;;;;10316:9;10287:168;;;-1:-1:-1;10472:3:50;;9755:726;-1:-1:-1;;;;;;;9755:726:50:o;12320:335::-;12522:2;12504:21;;;12561:2;12541:18;;;12534:30;-1:-1:-1;;;12595:2:50;12580:18;;12573:41;12646:2;12631:18;;12320:335::o;15234:125::-;15299:9;;;15320:10;;;15317:36;;;15333:18;;:::i;16772:407::-;16974:2;16956:21;;;17013:2;16993:18;;;16986:30;17052:34;17047:2;17032:18;;17025:62;-1:-1:-1;;;17118:2:50;17103:18;;17096:41;17169:3;17154:19;;16772:407::o;17532:245::-;17599:6;17652:2;17640:9;17631:7;17627:23;17623:32;17620:52;;;17668:1;17665;17658:12;17620:52;17700:9;17694:16;17719:28;17741:5;17719:28;:::i;19529:250::-;19614:1;19624:113;19638:6;19635:1;19632:13;19624:113;;;19714:11;;;19708:18;19695:11;;;19688:39;19660:2;19653:10;19624:113;;;-1:-1:-1;;19771:1:50;19753:16;;19746:27;19529:250::o;19784:287::-;19913:3;19951:6;19945:13;19967:66;20026:6;20021:3;20014:4;20006:6;20002:17;19967:66;:::i;:::-;20049:16;;;;;19784:287;-1:-1:-1;;19784:287:50:o;20076:396::-;20225:2;20214:9;20207:21;20188:4;20257:6;20251:13;20300:6;20295:2;20284:9;20280:18;20273:34;20316:79;20388:6;20383:2;20372:9;20368:18;20363:2;20355:6;20351:15;20316:79;:::i;:::-;20456:2;20435:15;-1:-1:-1;;20431:29:50;20416:45;;;;20463:2;20412:54;;20076:396;-1:-1:-1;;20076:396:50:o", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"budget\",\"type\":\"uint256\"}],\"name\":\"AddedBudget\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"learner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rewardAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nftIds\",\"type\":\"uint256[]\"}],\"name\":\"ClaimedReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"learner\",\"type\":\"address\"}],\"name\":\"CompletedCourse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeStarted\",\"type\":\"uint256\"}],\"name\":\"CreatedCourse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"RemovedCourse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawnBudget\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_budget\",\"type\":\"uint256\"}],\"name\":\"addBudget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_learner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_timeCompleted\",\"type\":\"uint256\"}],\"name\":\"canGetBonus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_learner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_timeStarted\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_timeCompleted\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"_nftIds\",\"type\":\"uint256[]\"}],\"name\":\"completeCourse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rewardAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_budget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_bonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_timeStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_timeEndBonus\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isUsingDuration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_isBonusToken\",\"type\":\"bool\"}],\"name\":\"createCourse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"}],\"name\":\"getCourseData\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rewardAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"budget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"budgetAvailable\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLearnersClaimedBonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeCreated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeEndBonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeRemoved\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBonusToken\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"canMintNFT\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isUsingDuration\",\"type\":\"bool\"}],\"internalType\":\"structCourse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_learner\",\"type\":\"address\"}],\"name\":\"getLearnerData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"timeStarted\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeCompleted\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeRewarded\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"nftIds\",\"type\":\"uint256[]\"}],\"internalType\":\"structLearner\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"}],\"name\":\"removeCourse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"}],\"name\":\"withdrawBudget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "608060405234801561001057600080fd5b50612158806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639d84bf91116100715780639d84bf9114610135578063b149fd1814610148578063caca4ad31461015b578063db631a891461016e578063f2fde38b1461018e578063fda626ce146101a157600080fd5b80632cca6f2d146100b95780633c41b482146100e2578063669e88a1146100f7578063715018a61461010a5780638129fc1c146101125780638da5cb5b1461011a575b600080fd5b6100cc6100c7366004611b88565b6101c4565b6040516100d99190611bb4565b60405180910390f35b6100f56100f0366004611c3a565b610291565b005b6100f5610105366004611d28565b61071b565b6100f5610904565b6100f5610918565b6065546040516001600160a01b0390911681526020016100d9565b6100f5610143366004611d28565b610a31565b6100f5610156366004611d4f565b610b31565b6100f5610169366004611dbf565b61107f565b61018161017c366004611d28565b6112f5565b6040516100d99190611de1565b6100f561019c366004611e8d565b61142a565b6101b46101af366004611ea8565b6114a0565b60405190151581526020016100d9565b6101ef6040518060800160405280600081526020016000815260200160008152602001606081525090565b60008381526098602090815260408083206001600160a01b0386168452825291829020825160808101845281548152600182015481840152600282015481850152600382018054855181860281018601909652808652919492936060860193929083018282801561027f57602002820191906000526020600020905b81548152602001906001019080831161026b575b50505050508152505090505b92915050565b60008581526097602052604090205485906001600160a01b031633146102d25760405162461bcd60e51b81526004016102c990611edd565b60405180910390fd5b6000868152609760205260409020600801548690156103035760405162461bcd60e51b81526004016102c990611f14565b60008781526097602052604090206006810154861080159061032457504286105b6103655760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081d1a5b59481cdd185c9d60721b60448201526064016102c9565b8585116103ac5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642074696d6520636f6d706c65746560581b60448201526064016102c9565b60008881526098602090815260408083206001600160a01b038b16845290915290206001810154156104145760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb5c1b195d1959607a1b60448201526064016102c9565b86815560006104248a8a896114a0565b60018301889055905080156106d157826004015483600301600082825461044b9190611f61565b909155505060058301805490600061046283611f74565b9091555050426002830155600983015460ff16156104a0576004830154600184015461049b916001600160a01b03909116908b90611592565b61067a565b6009830154610100900460ff16156105645760005b836004015481101561055e5760018401546040516335313c2160e11b81526001600160a01b038c8116600483015260038601921690636a627842906024016020604051808303816000875af1158015610512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105369190611f8d565b815460018101835560009283526020909220909101558061055681611f74565b9150506104b5565b5061067a565b82600401548651146105aa5760405162461bcd60e51b815260206004820152600f60248201526e4e6f7420656e6f756768204e46547360881b60448201526064016102c9565b85516105bf9060038401906020890190611b0c565b5060005b86518110156106785760018401546001600160a01b03166342842e0e338c8a85815181106105f3576105f3611fa6565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561064d57600080fd5b505af1158015610661573d6000803e3d6000fd5b50505050808061067090611f74565b9150506105c3565b505b600183015460048401546040516001600160a01b03928316928c16918d917fd7168ab8576ce4d8336598fe8c588ccb843823a522fe33c98365c3e082daa2ca916106c8916003890190611fbc565b60405180910390a45b6040516001600160a01b038a1681528a907fb14f5aab91d7f1973be0a7f66b9f50b5da882aaf454b27c50d6a9d7b2172616c9060200160405180910390a250505050505050505050565b60008181526097602052604090205481906001600160a01b031633146107535760405162461bcd60e51b81526004016102c990611edd565b6000828152609760205260409020600801548290156107845760405162461bcd60e51b81526004016102c990611f14565b6000838152609760205260409020600981015460ff166107d75760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21030b1ba34b7b760911b60448201526064016102c9565b600081600301541161081b5760405162461bcd60e51b815260206004820152600d60248201526c13dd5d081bd988189d5919d95d609a1b60448201526064016102c9565b600981015462010000900460ff168061084557506007810154158015906108455750806007015442115b6108915760405162461bcd60e51b815260206004820152601860248201527f54696d6520626f6e757320686173206e6f7420656e646564000000000000000060448201526064016102c9565b6003810180546000909155815460018301546108ba916001600160a01b03918216911683611592565b81546040518281526001600160a01b039091169086907faa558890c86253324a06b9e861f61281fd0810f170827987572e7123581a779f9060200160405180910390a35050505050565b61090c6115fa565b6109166000611654565b565b600054610100900460ff16158080156109385750600054600160ff909116105b806109525750303b158015610952575060005460ff166001145b6109b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102c9565b6000805460ff1916600117905580156109d8576000805461ff0019166101001790555b6109e06116a6565b6109e86116d5565b8015610a2e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60008181526097602052604090205481906001600160a01b03163314610a695760405162461bcd60e51b81526004016102c990611edd565b600082815260976020526040902060080154829015610a9a5760405162461bcd60e51b81526004016102c990611f14565b6000838152609760205260408120426008820155600381018054929055600981015490919060ff168015610ace5750600081115b15610af15781546001830154610af1916001600160a01b03918216911683611592565b81546040516001600160a01b039091169086907f10156d1d3e0caa069c8a10325a1dae1512b2ff6bb941c18e16194970746f30a490600090a35050505050565b8560008111610b525760405162461bcd60e51b81526004016102c99061200f565b8560008111610b735760405162461bcd60e51b81526004016102c99061200f565b600260015403610bc55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102c9565b60026001556001600160a01b038916610c195760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726577617264206164647265737360501b60448201526064016102c9565b86881015610c5a5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908189d5919d95d60921b60448201526064016102c9565b8515610caa5742861015610ca55760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081d1a5b59481cdd185c9d60721b60448201526064016102c9565b610cae565b4295505b600084610cc657851580610cc157508686115b610ccb565b600086115b905080610d135760405162461bcd60e51b8152602060048201526016602482015275496e76616c69642074696d6520656e6420626f6e757360501b60448201526064016102c9565b6000610d1d611704565b9050600085610e7457610d406001600160a01b038d1663357c172f60e01b61176b565b905080610e7457610d616001600160a01b038d166380ac58cd60e01b61176b565b610dad5760405162461bcd60e51b815260206004820152601d60248201527f52657761726420636f6e7472616374206973206e6f742045524337323100000060448201526064016102c9565b8a6001600160a01b038d166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e269190611f8d565b1015610e745760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742063726561746f7227732062616c616e6365000060448201526064016102c9565b604051806101800160405280610e873390565b6001600160a01b031681526020018d6001600160a01b031681526020018c81526020018c81526020018b8152602001600081526020018a815260200189815260200160008152602001871515815260200182151581526020018815158152506097600084815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090160006101000a81548160ff0219169083151502179055506101408201518160090160016101000a81548160ff0219169083151502179055506101608201518160090160026101000a81548160ff021916908315150217905550905050851561101b5761101b6001600160a01b038d1633308e611787565b604080513381526001600160a01b038e1660208201529081018b9052606081018a905282907fef048bc89a4d92f598f18e11c600d5cc675b387c770c6c49012d166043db64a29060800160405180910390a250506001805550505050505050505050565b60008281526097602052604090205482906001600160a01b031633146110b75760405162461bcd60e51b81526004016102c990611edd565b81600081116110d85760405162461bcd60e51b81526004016102c99061200f565b6000848152609760205260409020600801548490156111095760405162461bcd60e51b81526004016102c990611f14565b60026001540361115b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102c9565b6002600181905560008681526097602052604081209182018054879290611183908490612034565b925050819055508481600301600082825461119e9190612034565b9091555050600981015460ff16156111cf576111ca3360018301546001600160a01b0316903088611787565b6112af565b6009810154610100900460ff166112af57600381015460018201546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112619190611f8d565b10156112af5760405162461bcd60e51b815260206004820181905260248201527f42616c616e6365206f662063726561746f72206973206e6f7420656e6f75676860448201526064016102c9565b857f5cd42cadabfcfe861e1f12322ae257de37d1240ae38863b4c8b0b50fd0e32a26866040516112e191815260200190565b60405180910390a250506001805550505050565b61137160405180610180016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581526020016000151581525090565b5060009081526097602090815260409182902082516101808101845281546001600160a01b039081168252600183015416928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008083019190915260099092015460ff808216151561012084015292810483161515610140830152620100009004909116151561016082015290565b6114326115fa565b6001600160a01b0381166114975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c9565b610a2e81611654565b6000838152609760205260408120600481015460039091015410806114e9575060008481526098602090815260408083206001600160a01b038716845290915290206001015415155b156114f65750600061158b565b60008481526097602052604090206009015462010000900460ff161561155957600084815260976020908152604080832060070154609883528184206001600160a01b03881685529092529091205461154f9190612034565b821115905061158b565b600084815260976020526040902060070154158061158857506000848152609760205260409020600701548211155b90505b9392505050565b6040516001600160a01b0383166024820152604481018290526115f590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526117c5565b505050565b6065546001600160a01b031633146109165760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c9565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166116cd5760405162461bcd60e51b81526004016102c990612047565b610916611897565b600054610100900460ff166116fc5760405162461bcd60e51b81526004016102c990612047565b6109166118c7565b600061171060006118f4565b600081815260976020526040902060060154909150156117685760405162461bcd60e51b8152602060048201526013602482015272191d5c1b1a58d85d194818dbdd5c9cd9481a59606a1b60448201526064016102c9565b90565b60006117768361194c565b801561158b575061158b838361197f565b6040516001600160a01b03808516602483015283166044820152606481018290526117bf9085906323b872dd60e01b906084016115be565b50505050565b600061181a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611a089092919063ffffffff16565b8051909150156115f557808060200190518101906118389190612092565b6115f55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102c9565b600054610100900460ff166118be5760405162461bcd60e51b81526004016102c990612047565b61091633611654565b600054610100900460ff166118ee5760405162461bcd60e51b81526004016102c990612047565b60018055565b600033611902600143611f61565b60405160609290921b6bffffffffffffffffffffffff1916602083015240603482015260548101839052607401604051602081830303815290604052805190602001209050919050565b600061195f826301ffc9a760e01b61197f565b801561028b5750611978826001600160e01b031961197f565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156119f1575060208210155b80156119fd5750600081115b979650505050505050565b60606115888484600085856001600160a01b0385163b611a6a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102c9565b600080866001600160a01b03168587604051611a8691906120d3565b60006040518083038185875af1925050503d8060008114611ac3576040519150601f19603f3d011682016040523d82523d6000602084013e611ac8565b606091505b50915091506119fd82828660608315611ae257508161158b565b825115611af25782518084602001fd5b8160405162461bcd60e51b81526004016102c991906120ef565b828054828255906000526020600020908101928215611b47579160200282015b82811115611b47578251825591602001919060010190611b2c565b50611b53929150611b57565b5090565b5b80821115611b535760008155600101611b58565b80356001600160a01b0381168114611b8357600080fd5b919050565b60008060408385031215611b9b57600080fd5b82359150611bab60208401611b6c565b90509250929050565b6000602080835260a0830184518285015281850151604085015260408501516060850152606085015160808086015281815180845260c0870191508483019350600092505b80831015611c195783518252928401926001929092019190840190611bf9565b509695505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a08688031215611c5257600080fd5b853594506020611c63818801611b6c565b94506040870135935060608701359250608087013567ffffffffffffffff80821115611c8e57600080fd5b818901915089601f830112611ca257600080fd5b813581811115611cb457611cb4611c24565b8060051b604051601f19603f83011681018181108582111715611cd957611cd9611c24565b60405291825284820192508381018501918c831115611cf757600080fd5b938501935b82851015611d1557843584529385019392850192611cfc565b8096505050505050509295509295909350565b600060208284031215611d3a57600080fd5b5035919050565b8015158114610a2e57600080fd5b600080600080600080600060e0888a031215611d6a57600080fd5b611d7388611b6c565b96506020880135955060408801359450606088013593506080880135925060a0880135611d9f81611d41565b915060c0880135611daf81611d41565b8091505092959891949750929550565b60008060408385031215611dd257600080fd5b50508035926020909101359150565b81516001600160a01b0316815261018081016020830151611e0d60208401826001600160a01b03169052565b5060408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151611e6a8285018215159052565b505061014083810151151590830152610160928301511515929091019190915290565b600060208284031215611e9f57600080fd5b61158b82611b6c565b600080600060608486031215611ebd57600080fd5b83359250611ecd60208501611b6c565b9150604084013590509250925092565b6020808252601c908201527f63616c6c6572206973206e6f7420636f757273652063726561746f7200000000604082015260600190565b60208082526017908201527f436f7572736520686173206265656e2072656d6f766564000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028b5761028b611f4b565b600060018201611f8657611f86611f4b565b5060010190565b600060208284031215611f9f57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006040820184835260206040818501528185548084526060860191508660005282600020935060005b8181101561200257845483526001948501949284019201611fe6565b5090979650505050505050565b6020808252600b908201526a16995c9bc8185b5bdd5b9d60aa1b604082015260600190565b8082018082111561028b5761028b611f4b565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156120a457600080fd5b815161158b81611d41565b60005b838110156120ca5781810151838201526020016120b2565b50506000910152565b600082516120e58184602087016120af565b9190910192915050565b602081526000825180602084015261210e8160408501602087016120af565b601f01601f1916919091016040019291505056fea2646970667358221220ffde32c539f0c2ca37deb0a615513f93666574250ea78d2595bdfe329536b1c264736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b50600436106100b45760003560e01c80639d84bf91116100715780639d84bf9114610135578063b149fd1814610148578063caca4ad31461015b578063db631a891461016e578063f2fde38b1461018e578063fda626ce146101a157600080fd5b80632cca6f2d146100b95780633c41b482146100e2578063669e88a1146100f7578063715018a61461010a5780638129fc1c146101125780638da5cb5b1461011a575b600080fd5b6100cc6100c7366004611b88565b6101c4565b6040516100d99190611bb4565b60405180910390f35b6100f56100f0366004611c3a565b610291565b005b6100f5610105366004611d28565b61071b565b6100f5610904565b6100f5610918565b6065546040516001600160a01b0390911681526020016100d9565b6100f5610143366004611d28565b610a31565b6100f5610156366004611d4f565b610b31565b6100f5610169366004611dbf565b61107f565b61018161017c366004611d28565b6112f5565b6040516100d99190611de1565b6100f561019c366004611e8d565b61142a565b6101b46101af366004611ea8565b6114a0565b60405190151581526020016100d9565b6101ef6040518060800160405280600081526020016000815260200160008152602001606081525090565b60008381526098602090815260408083206001600160a01b0386168452825291829020825160808101845281548152600182015481840152600282015481850152600382018054855181860281018601909652808652919492936060860193929083018282801561027f57602002820191906000526020600020905b81548152602001906001019080831161026b575b50505050508152505090505b92915050565b60008581526097602052604090205485906001600160a01b031633146102d25760405162461bcd60e51b81526004016102c990611edd565b60405180910390fd5b6000868152609760205260409020600801548690156103035760405162461bcd60e51b81526004016102c990611f14565b60008781526097602052604090206006810154861080159061032457504286105b6103655760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081d1a5b59481cdd185c9d60721b60448201526064016102c9565b8585116103ac5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642074696d6520636f6d706c65746560581b60448201526064016102c9565b60008881526098602090815260408083206001600160a01b038b16845290915290206001810154156104145760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb5c1b195d1959607a1b60448201526064016102c9565b86815560006104248a8a896114a0565b60018301889055905080156106d157826004015483600301600082825461044b9190611f61565b909155505060058301805490600061046283611f74565b9091555050426002830155600983015460ff16156104a0576004830154600184015461049b916001600160a01b03909116908b90611592565b61067a565b6009830154610100900460ff16156105645760005b836004015481101561055e5760018401546040516335313c2160e11b81526001600160a01b038c8116600483015260038601921690636a627842906024016020604051808303816000875af1158015610512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105369190611f8d565b815460018101835560009283526020909220909101558061055681611f74565b9150506104b5565b5061067a565b82600401548651146105aa5760405162461bcd60e51b815260206004820152600f60248201526e4e6f7420656e6f756768204e46547360881b60448201526064016102c9565b85516105bf9060038401906020890190611b0c565b5060005b86518110156106785760018401546001600160a01b03166342842e0e338c8a85815181106105f3576105f3611fa6565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561064d57600080fd5b505af1158015610661573d6000803e3d6000fd5b50505050808061067090611f74565b9150506105c3565b505b600183015460048401546040516001600160a01b03928316928c16918d917fd7168ab8576ce4d8336598fe8c588ccb843823a522fe33c98365c3e082daa2ca916106c8916003890190611fbc565b60405180910390a45b6040516001600160a01b038a1681528a907fb14f5aab91d7f1973be0a7f66b9f50b5da882aaf454b27c50d6a9d7b2172616c9060200160405180910390a250505050505050505050565b60008181526097602052604090205481906001600160a01b031633146107535760405162461bcd60e51b81526004016102c990611edd565b6000828152609760205260409020600801548290156107845760405162461bcd60e51b81526004016102c990611f14565b6000838152609760205260409020600981015460ff166107d75760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21030b1ba34b7b760911b60448201526064016102c9565b600081600301541161081b5760405162461bcd60e51b815260206004820152600d60248201526c13dd5d081bd988189d5919d95d609a1b60448201526064016102c9565b600981015462010000900460ff168061084557506007810154158015906108455750806007015442115b6108915760405162461bcd60e51b815260206004820152601860248201527f54696d6520626f6e757320686173206e6f7420656e646564000000000000000060448201526064016102c9565b6003810180546000909155815460018301546108ba916001600160a01b03918216911683611592565b81546040518281526001600160a01b039091169086907faa558890c86253324a06b9e861f61281fd0810f170827987572e7123581a779f9060200160405180910390a35050505050565b61090c6115fa565b6109166000611654565b565b600054610100900460ff16158080156109385750600054600160ff909116105b806109525750303b158015610952575060005460ff166001145b6109b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102c9565b6000805460ff1916600117905580156109d8576000805461ff0019166101001790555b6109e06116a6565b6109e86116d5565b8015610a2e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60008181526097602052604090205481906001600160a01b03163314610a695760405162461bcd60e51b81526004016102c990611edd565b600082815260976020526040902060080154829015610a9a5760405162461bcd60e51b81526004016102c990611f14565b6000838152609760205260408120426008820155600381018054929055600981015490919060ff168015610ace5750600081115b15610af15781546001830154610af1916001600160a01b03918216911683611592565b81546040516001600160a01b039091169086907f10156d1d3e0caa069c8a10325a1dae1512b2ff6bb941c18e16194970746f30a490600090a35050505050565b8560008111610b525760405162461bcd60e51b81526004016102c99061200f565b8560008111610b735760405162461bcd60e51b81526004016102c99061200f565b600260015403610bc55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102c9565b60026001556001600160a01b038916610c195760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726577617264206164647265737360501b60448201526064016102c9565b86881015610c5a5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908189d5919d95d60921b60448201526064016102c9565b8515610caa5742861015610ca55760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081d1a5b59481cdd185c9d60721b60448201526064016102c9565b610cae565b4295505b600084610cc657851580610cc157508686115b610ccb565b600086115b905080610d135760405162461bcd60e51b8152602060048201526016602482015275496e76616c69642074696d6520656e6420626f6e757360501b60448201526064016102c9565b6000610d1d611704565b9050600085610e7457610d406001600160a01b038d1663357c172f60e01b61176b565b905080610e7457610d616001600160a01b038d166380ac58cd60e01b61176b565b610dad5760405162461bcd60e51b815260206004820152601d60248201527f52657761726420636f6e7472616374206973206e6f742045524337323100000060448201526064016102c9565b8a6001600160a01b038d166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e269190611f8d565b1015610e745760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742063726561746f7227732062616c616e6365000060448201526064016102c9565b604051806101800160405280610e873390565b6001600160a01b031681526020018d6001600160a01b031681526020018c81526020018c81526020018b8152602001600081526020018a815260200189815260200160008152602001871515815260200182151581526020018815158152506097600084815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090160006101000a81548160ff0219169083151502179055506101408201518160090160016101000a81548160ff0219169083151502179055506101608201518160090160026101000a81548160ff021916908315150217905550905050851561101b5761101b6001600160a01b038d1633308e611787565b604080513381526001600160a01b038e1660208201529081018b9052606081018a905282907fef048bc89a4d92f598f18e11c600d5cc675b387c770c6c49012d166043db64a29060800160405180910390a250506001805550505050505050505050565b60008281526097602052604090205482906001600160a01b031633146110b75760405162461bcd60e51b81526004016102c990611edd565b81600081116110d85760405162461bcd60e51b81526004016102c99061200f565b6000848152609760205260409020600801548490156111095760405162461bcd60e51b81526004016102c990611f14565b60026001540361115b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102c9565b6002600181905560008681526097602052604081209182018054879290611183908490612034565b925050819055508481600301600082825461119e9190612034565b9091555050600981015460ff16156111cf576111ca3360018301546001600160a01b0316903088611787565b6112af565b6009810154610100900460ff166112af57600381015460018201546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112619190611f8d565b10156112af5760405162461bcd60e51b815260206004820181905260248201527f42616c616e6365206f662063726561746f72206973206e6f7420656e6f75676860448201526064016102c9565b857f5cd42cadabfcfe861e1f12322ae257de37d1240ae38863b4c8b0b50fd0e32a26866040516112e191815260200190565b60405180910390a250506001805550505050565b61137160405180610180016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581526020016000151581525090565b5060009081526097602090815260409182902082516101808101845281546001600160a01b039081168252600183015416928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008083019190915260099092015460ff808216151561012084015292810483161515610140830152620100009004909116151561016082015290565b6114326115fa565b6001600160a01b0381166114975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c9565b610a2e81611654565b6000838152609760205260408120600481015460039091015410806114e9575060008481526098602090815260408083206001600160a01b038716845290915290206001015415155b156114f65750600061158b565b60008481526097602052604090206009015462010000900460ff161561155957600084815260976020908152604080832060070154609883528184206001600160a01b03881685529092529091205461154f9190612034565b821115905061158b565b600084815260976020526040902060070154158061158857506000848152609760205260409020600701548211155b90505b9392505050565b6040516001600160a01b0383166024820152604481018290526115f590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526117c5565b505050565b6065546001600160a01b031633146109165760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c9565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166116cd5760405162461bcd60e51b81526004016102c990612047565b610916611897565b600054610100900460ff166116fc5760405162461bcd60e51b81526004016102c990612047565b6109166118c7565b600061171060006118f4565b600081815260976020526040902060060154909150156117685760405162461bcd60e51b8152602060048201526013602482015272191d5c1b1a58d85d194818dbdd5c9cd9481a59606a1b60448201526064016102c9565b90565b60006117768361194c565b801561158b575061158b838361197f565b6040516001600160a01b03808516602483015283166044820152606481018290526117bf9085906323b872dd60e01b906084016115be565b50505050565b600061181a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611a089092919063ffffffff16565b8051909150156115f557808060200190518101906118389190612092565b6115f55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102c9565b600054610100900460ff166118be5760405162461bcd60e51b81526004016102c990612047565b61091633611654565b600054610100900460ff166118ee5760405162461bcd60e51b81526004016102c990612047565b60018055565b600033611902600143611f61565b60405160609290921b6bffffffffffffffffffffffff1916602083015240603482015260548101839052607401604051602081830303815290604052805190602001209050919050565b600061195f826301ffc9a760e01b61197f565b801561028b5750611978826001600160e01b031961197f565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156119f1575060208210155b80156119fd5750600081115b979650505050505050565b60606115888484600085856001600160a01b0385163b611a6a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102c9565b600080866001600160a01b03168587604051611a8691906120d3565b60006040518083038185875af1925050503d8060008114611ac3576040519150601f19603f3d011682016040523d82523d6000602084013e611ac8565b606091505b50915091506119fd82828660608315611ae257508161158b565b825115611af25782518084602001fd5b8160405162461bcd60e51b81526004016102c991906120ef565b828054828255906000526020600020908101928215611b47579160200282015b82811115611b47578251825591602001919060010190611b2c565b50611b53929150611b57565b5090565b5b80821115611b535760008155600101611b58565b80356001600160a01b0381168114611b8357600080fd5b919050565b60008060408385031215611b9b57600080fd5b82359150611bab60208401611b6c565b90509250929050565b6000602080835260a0830184518285015281850151604085015260408501516060850152606085015160808086015281815180845260c0870191508483019350600092505b80831015611c195783518252928401926001929092019190840190611bf9565b509695505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a08688031215611c5257600080fd5b853594506020611c63818801611b6c565b94506040870135935060608701359250608087013567ffffffffffffffff80821115611c8e57600080fd5b818901915089601f830112611ca257600080fd5b813581811115611cb457611cb4611c24565b8060051b604051601f19603f83011681018181108582111715611cd957611cd9611c24565b60405291825284820192508381018501918c831115611cf757600080fd5b938501935b82851015611d1557843584529385019392850192611cfc565b8096505050505050509295509295909350565b600060208284031215611d3a57600080fd5b5035919050565b8015158114610a2e57600080fd5b600080600080600080600060e0888a031215611d6a57600080fd5b611d7388611b6c565b96506020880135955060408801359450606088013593506080880135925060a0880135611d9f81611d41565b915060c0880135611daf81611d41565b8091505092959891949750929550565b60008060408385031215611dd257600080fd5b50508035926020909101359150565b81516001600160a01b0316815261018081016020830151611e0d60208401826001600160a01b03169052565b5060408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151611e6a8285018215159052565b505061014083810151151590830152610160928301511515929091019190915290565b600060208284031215611e9f57600080fd5b61158b82611b6c565b600080600060608486031215611ebd57600080fd5b83359250611ecd60208501611b6c565b9150604084013590509250925092565b6020808252601c908201527f63616c6c6572206973206e6f7420636f757273652063726561746f7200000000604082015260600190565b60208082526017908201527f436f7572736520686173206265656e2072656d6f766564000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028b5761028b611f4b565b600060018201611f8657611f86611f4b565b5060010190565b600060208284031215611f9f57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006040820184835260206040818501528185548084526060860191508660005282600020935060005b8181101561200257845483526001948501949284019201611fe6565b5090979650505050505050565b6020808252600b908201526a16995c9bc8185b5bdd5b9d60aa1b604082015260600190565b8082018082111561028b5761028b611f4b565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156120a457600080fd5b815161158b81611d41565b60005b838110156120ca5781810151838201526020016120b2565b50506000910152565b600082516120e58184602087016120af565b9190910192915050565b602081526000825180602084015261210e8160408501602087016120af565b601f01601f1916919091016040019291505056fea2646970667358221220ffde32c539f0c2ca37deb0a615513f93666574250ea78d2595bdfe329536b1c264736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/LearnToEarnTest.sol:LearnToEarnTest": {"srcmap": "161:1664:35:-:0;;;249:159;;;;;;;;;;287:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;273:11:35;:31;;-1:-1:-1;;;;;;273:31:35;-1:-1:-1;;;;;273:31:35;;;;;;;;;314:24;;;-1:-1:-1;;;314:24:35;;;;:22;;:24;;;;;273:11;;314:24;;;;;;273:11;:31;314:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;362:39;;;;;:::i;:::-;317:2:50;299:21;;;356:2;336:18;;;329:30;-1:-1:-1;;;390:2:50;375:18;;368:41;447:3;440:4;425:20;;418:33;;;488:1;467:19;;;460:30;-1:-1:-1;;;521:3:50;506:19;;499:37;568:3;553:19;362:39:35;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;349:10:35;:52;;-1:-1:-1;;;;;;349:52:35;-1:-1:-1;;;;;349:52:35;;;;;;;;;;161:1664;;;;;;;;;;:::o;:::-;;;;;;;;:::o;14:564:50:-;161:1664:35;;;;;;", "srcmap-runtime": "161:1664:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;588:1235;;;:::i;:::-;;;666:3;697;726:2;758:15;634:21;806:18;758:15;818:6;806:18;:::i;:::-;834:20;906:11;:204;;-1:-1:-1;;;906:204:35;;-1:-1:-1;;;;;597:32:50;;;906:204:35;;;579:51:50;646:18;;;639:34;;;689:18;;;682:34;;;732:18;;;725:34;;;775:19;;;768:35;;;857:4:35;819:19:50;;;812:51;;;879:19;;;872:51;;;783:41:35;;-1:-1:-1;857:4:35;;906:11;;:24;;551:19:50;;906:204:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1121:16;1140:14;1152:1;1140:11;:14::i;:::-;1225:20;1248:11;;:35;;-1:-1:-1;;;1248:35:35;;;;;1080:25:50;;;1121:33:35;;-1:-1:-1;1225:20:35;;-1:-1:-1;;;;;1248:11:35;;;;:25;;1053:18:50;;1248:35:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1300:14;;1225:58;;-1:-1:-1;;;;;;1300:31:35;1326:4;1300:31;1293:39;;;;:::i;:::-;1373:13;-1:-1:-1;;;;;1349:37:35;:6;:20;;;-1:-1:-1;;;;;1349:37:35;;1342:45;;;;:::i;:::-;1421:6;1404;:13;;;:23;1397:31;;;;:::i;:::-;1471:6;1445;:22;;;:32;1438:40;;;;:::i;:::-;1511:5;1495:6;:12;;;:21;1488:29;;;;:::i;:::-;1556:9;1534:6;:18;;;:31;1527:39;;;;:::i;:::-;1606:12;1583:6;:19;;;:35;1576:43;;;;:::i;:::-;1636:18;;;;:23;1629:31;;;;:::i;:::-;1703:15;1677:41;;:6;:22;;;:41;;;1670:49;;;;:::i;:::-;1759:12;1736:35;;:6;:19;;;:35;;;1729:43;;;;:::i;:::-;1789:17;;;;:26;1782:34;;;;:::i;:::-;624:1199;;;;;;;;;588:1235::o;414:168::-;473:7;526:10;548:16;563:1;548:12;:16;:::i;:::-;509:65;;3413:2:50;3409:15;;;;-1:-1:-1;;3405:53:50;509:65:35;;;3393:66:50;538:27:35;3475:12:50;;;3468:28;3512:12;;;3505:28;;;3549:12;;509:65:35;;;;;;;;;;;;499:76;;;;;;492:83;;414:168;;;:::o;14:127:50:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;1116:344::-;1183:2;1177:9;1225:3;1213:16;;1259:18;1244:34;;1280:22;;;1241:62;1238:185;;;1345:10;1340:3;1336:20;1333:1;1326:31;1380:4;1377:1;1370:15;1408:4;1405:1;1398:15;1238:185;1439:2;1432:22;1116:344;:::o;1465:177::-;1544:13;;-1:-1:-1;;;;;1586:31:50;;1576:42;;1566:70;;1632:1;1629;1622:12;1566:70;1465:177;;;:::o;1647:164::-;1723:13;;1772;;1765:21;1755:32;;1745:60;;1801:1;1798;1791:12;1816:1122;1910:6;1963:3;1951:9;1942:7;1938:23;1934:33;1931:53;;;1980:1;1977;1970:12;1931:53;2006:17;;:::i;:::-;2046:40;2076:9;2046:40;:::i;:::-;2039:5;2032:55;2119:49;2164:2;2153:9;2149:18;2119:49;:::i;:::-;2114:2;2107:5;2103:14;2096:73;2222:2;2211:9;2207:18;2201:25;2196:2;2189:5;2185:14;2178:49;2280:2;2269:9;2265:18;2259:25;2254:2;2247:5;2243:14;2236:49;2339:3;2328:9;2324:19;2318:26;2312:3;2305:5;2301:15;2294:51;2399:3;2388:9;2384:19;2378:26;2372:3;2365:5;2361:15;2354:51;2459:3;2448:9;2444:19;2438:26;2432:3;2425:5;2421:15;2414:51;2519:3;2508:9;2504:19;2498:26;2492:3;2485:5;2481:15;2474:51;2544:3;2600:2;2589:9;2585:18;2579:25;2574:2;2567:5;2563:14;2556:49;;2624:3;2659:46;2701:2;2690:9;2686:18;2659:46;:::i;:::-;2643:14;;;2636:70;2725:3;2760:46;2787:18;;;2760:46;:::i;:::-;2744:14;;;2737:70;2826:3;2861:46;2888:18;;;2861:46;:::i;:::-;2845:14;;;2838:70;2849:5;1816:1122;-1:-1:-1;;;1816:1122:50:o;2943:127::-;3004:10;2999:3;2995:20;2992:1;2985:31;3035:4;3032:1;3025:15;3059:4;3056:1;3049:15;3075:128;3142:9;;;3163:11;;;3160:37;;;3177:18;;:::i", "abi": "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"test_createCourse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "608060405234801561001057600080fd5b5060405161001d90610133565b604051809103906000f080158015610039573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b039290921691821781556040805163204a7f0760e21b81529051638129fc1c9260048084019391929182900301818387803b15801561008d57600080fd5b505af11580156100a1573d6000803e3d6000fd5b505050506040516100b190610140565b6040808252600b908201526a436572746966696361746560a81b60608201526080602082018190526006908201526550494f4e434560d01b60a082015260c001604051809103906000f08015801561010d573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905561014d565b612178806105c183390190565b611bdd8061273983390190565b6104658061015c6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e22387d314610030575b600080fd5b61003861003a565b005b60016064600a42600061005082620151806102cd565b6000546040516316293fa360e31b81526001600160a01b03888116600483015260248201889052604482018790526064820186905260848201849052600160a4830181905260c483018190529394508392169063b149fd189060e401600060405180830381600087803b1580156100c657600080fd5b505af11580156100da573d6000803e3d6000fd5b5050505060006100ea600061025f565b6000805460405163db631a8960e01b81526004810184905292935090916001600160a01b039091169063db631a899060240161018060405180830381865afa15801561013a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015e919061034a565b80519091506001600160a01b0316301461017a5761017a610406565b886001600160a01b031681602001516001600160a01b03161461019f5761019f610406565b878160400151146101b2576101b2610406565b878160600151146101c5576101c5610406565b868160800151146101d8576101d8610406565b858160c00151146101eb576101eb610406565b848160e00151146101fe576101fe610406565b6101008101511561021157610211610406565b83151581610160015115151461022957610229610406565b82151581610120015115151461024157610241610406565b6101408101511561025457610254610406565b505050505050505050565b60003361026d60014361041c565b60405160609290921b6bffffffffffffffffffffffff1916602083015240603482015260548101839052607401604051602081830303815290604052805190602001209050919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102e0576102e06102b7565b92915050565b604051610180810167ffffffffffffffff8111828210171561031857634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b038116811461033557600080fd5b919050565b8051801515811461033557600080fd5b6000610180828403121561035d57600080fd5b6103656102e6565b61036e8361031e565b815261037c6020840161031e565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101206103d781850161033a565b908201526101406103e984820161033a565b908201526101606103fb84820161033a565b908201529392505050565b634e487b7160e01b600052600160045260246000fd5b818103818111156102e0576102e06102b756fea2646970667358221220fb999c7b64e1f1adfa2819529681fb8b4da747620c8ff7d4a077803d73d13b1464736f6c63430008100033608060405234801561001057600080fd5b50612158806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639d84bf91116100715780639d84bf9114610135578063b149fd1814610148578063caca4ad31461015b578063db631a891461016e578063f2fde38b1461018e578063fda626ce146101a157600080fd5b80632cca6f2d146100b95780633c41b482146100e2578063669e88a1146100f7578063715018a61461010a5780638129fc1c146101125780638da5cb5b1461011a575b600080fd5b6100cc6100c7366004611b88565b6101c4565b6040516100d99190611bb4565b60405180910390f35b6100f56100f0366004611c3a565b610291565b005b6100f5610105366004611d28565b61071b565b6100f5610904565b6100f5610918565b6065546040516001600160a01b0390911681526020016100d9565b6100f5610143366004611d28565b610a31565b6100f5610156366004611d4f565b610b31565b6100f5610169366004611dbf565b61107f565b61018161017c366004611d28565b6112f5565b6040516100d99190611de1565b6100f561019c366004611e8d565b61142a565b6101b46101af366004611ea8565b6114a0565b60405190151581526020016100d9565b6101ef6040518060800160405280600081526020016000815260200160008152602001606081525090565b60008381526098602090815260408083206001600160a01b0386168452825291829020825160808101845281548152600182015481840152600282015481850152600382018054855181860281018601909652808652919492936060860193929083018282801561027f57602002820191906000526020600020905b81548152602001906001019080831161026b575b50505050508152505090505b92915050565b60008581526097602052604090205485906001600160a01b031633146102d25760405162461bcd60e51b81526004016102c990611edd565b60405180910390fd5b6000868152609760205260409020600801548690156103035760405162461bcd60e51b81526004016102c990611f14565b60008781526097602052604090206006810154861080159061032457504286105b6103655760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081d1a5b59481cdd185c9d60721b60448201526064016102c9565b8585116103ac5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642074696d6520636f6d706c65746560581b60448201526064016102c9565b60008881526098602090815260408083206001600160a01b038b16845290915290206001810154156104145760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb5c1b195d1959607a1b60448201526064016102c9565b86815560006104248a8a896114a0565b60018301889055905080156106d157826004015483600301600082825461044b9190611f61565b909155505060058301805490600061046283611f74565b9091555050426002830155600983015460ff16156104a0576004830154600184015461049b916001600160a01b03909116908b90611592565b61067a565b6009830154610100900460ff16156105645760005b836004015481101561055e5760018401546040516335313c2160e11b81526001600160a01b038c8116600483015260038601921690636a627842906024016020604051808303816000875af1158015610512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105369190611f8d565b815460018101835560009283526020909220909101558061055681611f74565b9150506104b5565b5061067a565b82600401548651146105aa5760405162461bcd60e51b815260206004820152600f60248201526e4e6f7420656e6f756768204e46547360881b60448201526064016102c9565b85516105bf9060038401906020890190611b0c565b5060005b86518110156106785760018401546001600160a01b03166342842e0e338c8a85815181106105f3576105f3611fa6565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561064d57600080fd5b505af1158015610661573d6000803e3d6000fd5b50505050808061067090611f74565b9150506105c3565b505b600183015460048401546040516001600160a01b03928316928c16918d917fd7168ab8576ce4d8336598fe8c588ccb843823a522fe33c98365c3e082daa2ca916106c8916003890190611fbc565b60405180910390a45b6040516001600160a01b038a1681528a907fb14f5aab91d7f1973be0a7f66b9f50b5da882aaf454b27c50d6a9d7b2172616c9060200160405180910390a250505050505050505050565b60008181526097602052604090205481906001600160a01b031633146107535760405162461bcd60e51b81526004016102c990611edd565b6000828152609760205260409020600801548290156107845760405162461bcd60e51b81526004016102c990611f14565b6000838152609760205260409020600981015460ff166107d75760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21030b1ba34b7b760911b60448201526064016102c9565b600081600301541161081b5760405162461bcd60e51b815260206004820152600d60248201526c13dd5d081bd988189d5919d95d609a1b60448201526064016102c9565b600981015462010000900460ff168061084557506007810154158015906108455750806007015442115b6108915760405162461bcd60e51b815260206004820152601860248201527f54696d6520626f6e757320686173206e6f7420656e646564000000000000000060448201526064016102c9565b6003810180546000909155815460018301546108ba916001600160a01b03918216911683611592565b81546040518281526001600160a01b039091169086907faa558890c86253324a06b9e861f61281fd0810f170827987572e7123581a779f9060200160405180910390a35050505050565b61090c6115fa565b6109166000611654565b565b600054610100900460ff16158080156109385750600054600160ff909116105b806109525750303b158015610952575060005460ff166001145b6109b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102c9565b6000805460ff1916600117905580156109d8576000805461ff0019166101001790555b6109e06116a6565b6109e86116d5565b8015610a2e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60008181526097602052604090205481906001600160a01b03163314610a695760405162461bcd60e51b81526004016102c990611edd565b600082815260976020526040902060080154829015610a9a5760405162461bcd60e51b81526004016102c990611f14565b6000838152609760205260408120426008820155600381018054929055600981015490919060ff168015610ace5750600081115b15610af15781546001830154610af1916001600160a01b03918216911683611592565b81546040516001600160a01b039091169086907f10156d1d3e0caa069c8a10325a1dae1512b2ff6bb941c18e16194970746f30a490600090a35050505050565b8560008111610b525760405162461bcd60e51b81526004016102c99061200f565b8560008111610b735760405162461bcd60e51b81526004016102c99061200f565b600260015403610bc55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102c9565b60026001556001600160a01b038916610c195760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726577617264206164647265737360501b60448201526064016102c9565b86881015610c5a5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908189d5919d95d60921b60448201526064016102c9565b8515610caa5742861015610ca55760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081d1a5b59481cdd185c9d60721b60448201526064016102c9565b610cae565b4295505b600084610cc657851580610cc157508686115b610ccb565b600086115b905080610d135760405162461bcd60e51b8152602060048201526016602482015275496e76616c69642074696d6520656e6420626f6e757360501b60448201526064016102c9565b6000610d1d611704565b9050600085610e7457610d406001600160a01b038d1663357c172f60e01b61176b565b905080610e7457610d616001600160a01b038d166380ac58cd60e01b61176b565b610dad5760405162461bcd60e51b815260206004820152601d60248201527f52657761726420636f6e7472616374206973206e6f742045524337323100000060448201526064016102c9565b8a6001600160a01b038d166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e269190611f8d565b1015610e745760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742063726561746f7227732062616c616e6365000060448201526064016102c9565b604051806101800160405280610e873390565b6001600160a01b031681526020018d6001600160a01b031681526020018c81526020018c81526020018b8152602001600081526020018a815260200189815260200160008152602001871515815260200182151581526020018815158152506097600084815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090160006101000a81548160ff0219169083151502179055506101408201518160090160016101000a81548160ff0219169083151502179055506101608201518160090160026101000a81548160ff021916908315150217905550905050851561101b5761101b6001600160a01b038d1633308e611787565b604080513381526001600160a01b038e1660208201529081018b9052606081018a905282907fef048bc89a4d92f598f18e11c600d5cc675b387c770c6c49012d166043db64a29060800160405180910390a250506001805550505050505050505050565b60008281526097602052604090205482906001600160a01b031633146110b75760405162461bcd60e51b81526004016102c990611edd565b81600081116110d85760405162461bcd60e51b81526004016102c99061200f565b6000848152609760205260409020600801548490156111095760405162461bcd60e51b81526004016102c990611f14565b60026001540361115b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102c9565b6002600181905560008681526097602052604081209182018054879290611183908490612034565b925050819055508481600301600082825461119e9190612034565b9091555050600981015460ff16156111cf576111ca3360018301546001600160a01b0316903088611787565b6112af565b6009810154610100900460ff166112af57600381015460018201546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112619190611f8d565b10156112af5760405162461bcd60e51b815260206004820181905260248201527f42616c616e6365206f662063726561746f72206973206e6f7420656e6f75676860448201526064016102c9565b857f5cd42cadabfcfe861e1f12322ae257de37d1240ae38863b4c8b0b50fd0e32a26866040516112e191815260200190565b60405180910390a250506001805550505050565b61137160405180610180016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581526020016000151581525090565b5060009081526097602090815260409182902082516101808101845281546001600160a01b039081168252600183015416928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008083019190915260099092015460ff808216151561012084015292810483161515610140830152620100009004909116151561016082015290565b6114326115fa565b6001600160a01b0381166114975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c9565b610a2e81611654565b6000838152609760205260408120600481015460039091015410806114e9575060008481526098602090815260408083206001600160a01b038716845290915290206001015415155b156114f65750600061158b565b60008481526097602052604090206009015462010000900460ff161561155957600084815260976020908152604080832060070154609883528184206001600160a01b03881685529092529091205461154f9190612034565b821115905061158b565b600084815260976020526040902060070154158061158857506000848152609760205260409020600701548211155b90505b9392505050565b6040516001600160a01b0383166024820152604481018290526115f590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526117c5565b505050565b6065546001600160a01b031633146109165760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c9565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166116cd5760405162461bcd60e51b81526004016102c990612047565b610916611897565b600054610100900460ff166116fc5760405162461bcd60e51b81526004016102c990612047565b6109166118c7565b600061171060006118f4565b600081815260976020526040902060060154909150156117685760405162461bcd60e51b8152602060048201526013602482015272191d5c1b1a58d85d194818dbdd5c9cd9481a59606a1b60448201526064016102c9565b90565b60006117768361194c565b801561158b575061158b838361197f565b6040516001600160a01b03808516602483015283166044820152606481018290526117bf9085906323b872dd60e01b906084016115be565b50505050565b600061181a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611a089092919063ffffffff16565b8051909150156115f557808060200190518101906118389190612092565b6115f55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102c9565b600054610100900460ff166118be5760405162461bcd60e51b81526004016102c990612047565b61091633611654565b600054610100900460ff166118ee5760405162461bcd60e51b81526004016102c990612047565b60018055565b600033611902600143611f61565b60405160609290921b6bffffffffffffffffffffffff1916602083015240603482015260548101839052607401604051602081830303815290604052805190602001209050919050565b600061195f826301ffc9a760e01b61197f565b801561028b5750611978826001600160e01b031961197f565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156119f1575060208210155b80156119fd5750600081115b979650505050505050565b60606115888484600085856001600160a01b0385163b611a6a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102c9565b600080866001600160a01b03168587604051611a8691906120d3565b60006040518083038185875af1925050503d8060008114611ac3576040519150601f19603f3d011682016040523d82523d6000602084013e611ac8565b606091505b50915091506119fd82828660608315611ae257508161158b565b825115611af25782518084602001fd5b8160405162461bcd60e51b81526004016102c991906120ef565b828054828255906000526020600020908101928215611b47579160200282015b82811115611b47578251825591602001919060010190611b2c565b50611b53929150611b57565b5090565b5b80821115611b535760008155600101611b58565b80356001600160a01b0381168114611b8357600080fd5b919050565b60008060408385031215611b9b57600080fd5b82359150611bab60208401611b6c565b90509250929050565b6000602080835260a0830184518285015281850151604085015260408501516060850152606085015160808086015281815180845260c0870191508483019350600092505b80831015611c195783518252928401926001929092019190840190611bf9565b509695505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a08688031215611c5257600080fd5b853594506020611c63818801611b6c565b94506040870135935060608701359250608087013567ffffffffffffffff80821115611c8e57600080fd5b818901915089601f830112611ca257600080fd5b813581811115611cb457611cb4611c24565b8060051b604051601f19603f83011681018181108582111715611cd957611cd9611c24565b60405291825284820192508381018501918c831115611cf757600080fd5b938501935b82851015611d1557843584529385019392850192611cfc565b8096505050505050509295509295909350565b600060208284031215611d3a57600080fd5b5035919050565b8015158114610a2e57600080fd5b600080600080600080600060e0888a031215611d6a57600080fd5b611d7388611b6c565b96506020880135955060408801359450606088013593506080880135925060a0880135611d9f81611d41565b915060c0880135611daf81611d41565b8091505092959891949750929550565b60008060408385031215611dd257600080fd5b50508035926020909101359150565b81516001600160a01b0316815261018081016020830151611e0d60208401826001600160a01b03169052565b5060408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151611e6a8285018215159052565b505061014083810151151590830152610160928301511515929091019190915290565b600060208284031215611e9f57600080fd5b61158b82611b6c565b600080600060608486031215611ebd57600080fd5b83359250611ecd60208501611b6c565b9150604084013590509250925092565b6020808252601c908201527f63616c6c6572206973206e6f7420636f757273652063726561746f7200000000604082015260600190565b60208082526017908201527f436f7572736520686173206265656e2072656d6f766564000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028b5761028b611f4b565b600060018201611f8657611f86611f4b565b5060010190565b600060208284031215611f9f57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006040820184835260206040818501528185548084526060860191508660005282600020935060005b8181101561200257845483526001948501949284019201611fe6565b5090979650505050505050565b6020808252600b908201526a16995c9bc8185b5bdd5b9d60aa1b604082015260600190565b8082018082111561028b5761028b611f4b565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156120a457600080fd5b815161158b81611d41565b60005b838110156120ca5781810151838201526020016120b2565b50506000910152565b600082516120e58184602087016120af565b9190910192915050565b602081526000825180602084015261210e8160408501602087016120af565b601f01601f1916919091016040019291505056fea2646970667358221220ffde32c539f0c2ca37deb0a615513f93666574250ea78d2595bdfe329536b1c264736f6c6343000810003360806040523480156200001157600080fd5b5060405162001bdd38038062001bdd833981016040819052620000349162000193565b818160006200004483826200028c565b5060016200005382826200028c565b505050620000706200006a6200007860201b60201c565b6200007c565b505062000358565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000f657600080fd5b81516001600160401b0380821115620001135762000113620000ce565b604051601f8301601f19908116603f011681019082821181831017156200013e576200013e620000ce565b816040528381526020925086838588010111156200015b57600080fd5b600091505b838210156200017f578582018301518183018401529082019062000160565b600093810190920192909252949350505050565b60008060408385031215620001a757600080fd5b82516001600160401b0380821115620001bf57600080fd5b620001cd86838701620000e4565b93506020850151915080821115620001e457600080fd5b50620001f385828601620000e4565b9150509250929050565b600181811c908216806200021257607f821691505b6020821081036200023357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028757600081815260208120601f850160051c81016020861015620002625750805b601f850160051c820191505b8181101562000283578281556001016200026e565b5050505b505050565b81516001600160401b03811115620002a857620002a8620000ce565b620002c081620002b98454620001fd565b8462000239565b602080601f831160018114620002f85760008415620002df5750858301515b600019600386901b1c1916600185901b17855562000283565b600085815260208120601f198616915b82811015620003295788860151825594840194600190910190840162000308565b5085821015620003485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61187580620003686000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde1461022f578063c87b56dd14610242578063e985e9c514610255578063eacabe1414610268578063f2fde38b1461027b57600080fd5b8063715018a6146101fb5780638da5cb5b1461020357806395d89b4114610214578063a22cb4651461021c57600080fd5b806323b872dd116100e957806323b872dd1461019857806342842e0e146101ab5780636352211e146101be57806370a08231146101d1578063714cff56146101f257600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e6101293660046111e6565b61028e565b60405190151581526020015b60405180910390f35b61014b6102e0565b60405161013a9190611253565b61016b610166366004611266565b610372565b6040516001600160a01b03909116815260200161013a565b61019661019136600461129b565b610399565b005b6101966101a63660046112c5565b6104b3565b6101966101b93660046112c5565b6104e4565b61016b6101cc366004611266565b6104ff565b6101e46101df366004611301565b61055f565b60405190815260200161013a565b6101e460085481565b6101966105e5565b6007546001600160a01b031661016b565b61014b6105f9565b61019661022a36600461131c565b610608565b61019661023d3660046113e4565b610617565b61014b610250366004611266565b61064f565b61012e610263366004611460565b61075f565b610196610276366004611493565b61078d565b610196610289366004611301565b61084b565b60006001600160e01b031982166380ac58cd60e01b14806102bf57506001600160e01b03198216635b5e139f60e01b145b806102da57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546102ef906114f5565b80601f016020809104026020016040519081016040528092919081815260200182805461031b906114f5565b80156103685780601f1061033d57610100808354040283529160200191610368565b820191906000526020600020905b81548152906001019060200180831161034b57829003601f168201915b5050505050905090565b600061037d826108c4565b506000908152600460205260409020546001600160a01b031690565b60006103a4826104ff565b9050806001600160a01b0316836001600160a01b0316036104165760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806104325750610432813361075f565b6104a45760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161040d565b6104ae8383610923565b505050565b6104bd3382610991565b6104d95760405162461bcd60e51b815260040161040d9061152f565b6104ae8383836109ef565b6104ae83838360405180602001604052806000815250610617565b6000818152600260205260408120546001600160a01b0316806102da5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161040d565b60006001600160a01b0382166105c95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161040d565b506001600160a01b031660009081526003602052604090205490565b6105ed610b8b565b6105f76000610be5565b565b6060600180546102ef906114f5565b610613338383610c37565b5050565b6106213383610991565b61063d5760405162461bcd60e51b815260040161040d9061152f565b61064984848484610d05565b50505050565b606061065a826108c4565b60008281526006602052604081208054610673906114f5565b80601f016020809104026020016040519081016040528092919081815260200182805461069f906114f5565b80156106ec5780601f106106c1576101008083540402835291602001916106ec565b820191906000526020600020905b8154815290600101906020018083116106cf57829003601f168201915b50505050509050600061070a60408051602081019091526000815290565b9050805160000361071c575092915050565b81511561074e57808260405160200161073692919061157d565b60405160208183030381529060405292505050919050565b61075784610d38565b949350505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b610795610b8b565b6001600160a01b0382166107dd5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161040d565b600880549060006107ed836115c2565b91905055506107fe82600854610dac565b61080a60085482610dc6565b7f9f0432214927ca5d54e705bee45cb45cd0b88d9c6bc15906cc3498feb1d81310826008548360405161083f939291906115db565b60405180910390a15050565b610853610b8b565b6001600160a01b0381166108b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161040d565b6108c181610be5565b50565b6000818152600260205260409020546001600160a01b03166108c15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161040d565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610958826104ff565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061099d836104ff565b9050806001600160a01b0316846001600160a01b031614806109c457506109c4818561075f565b806107575750836001600160a01b03166109dd84610372565b6001600160a01b031614949350505050565b826001600160a01b0316610a02826104ff565b6001600160a01b031614610a665760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161040d565b6001600160a01b038216610ac85760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161040d565b610ad3600082610923565b6001600160a01b0383166000908152600360205260408120805460019290610afc90849061160b565b90915550506001600160a01b0382166000908152600360205260408120805460019290610b2a90849061161e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6007546001600160a01b031633146105f75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040d565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603610c985760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161040d565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610d108484846109ef565b610d1c84848484610e59565b6106495760405162461bcd60e51b815260040161040d90611631565b6060610d43826108c4565b6000610d5a60408051602081019091526000815290565b90506000815111610d7a5760405180602001604052806000815250610da5565b80610d8484610f5a565b604051602001610d9592919061157d565b6040516020818303038152906040525b9392505050565b61061382826040518060200160405280600081525061105b565b6000828152600260205260409020546001600160a01b0316610e415760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b606482015260840161040d565b60008281526006602052604090206104ae82826116d1565b60006001600160a01b0384163b15610f4f57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610e9d903390899088908890600401611791565b6020604051808303816000875af1925050508015610ed8575060408051601f3d908101601f19168201909252610ed5918101906117ce565b60015b610f35573d808015610f06576040519150601f19603f3d011682016040523d82523d6000602084013e610f0b565b606091505b508051600003610f2d5760405162461bcd60e51b815260040161040d90611631565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610757565b506001949350505050565b606081600003610f815750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610fab5780610f95816115c2565b9150610fa49050600a83611801565b9150610f85565b60008167ffffffffffffffff811115610fc657610fc6611358565b6040519080825280601f01601f191660200182016040528015610ff0576020820181803683370190505b5090505b84156107575761100560018361160b565b9150611012600a86611815565b61101d90603061161e565b60f81b81838151811061103257611032611829565b60200101906001600160f81b031916908160001a905350611054600a86611801565b9450610ff4565b611065838361108e565b6110726000848484610e59565b6104ae5760405162461bcd60e51b815260040161040d90611631565b6001600160a01b0382166110e45760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161040d565b6000818152600260205260409020546001600160a01b0316156111495760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161040d565b6001600160a01b038216600090815260036020526040812080546001929061117290849061161e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b0319811681146108c157600080fd5b6000602082840312156111f857600080fd5b8135610da5816111d0565b60005b8381101561121e578181015183820152602001611206565b50506000910152565b6000815180845261123f816020860160208601611203565b601f01601f19169290920160200192915050565b602081526000610da56020830184611227565b60006020828403121561127857600080fd5b5035919050565b80356001600160a01b038116811461129657600080fd5b919050565b600080604083850312156112ae57600080fd5b6112b78361127f565b946020939093013593505050565b6000806000606084860312156112da57600080fd5b6112e38461127f565b92506112f16020850161127f565b9150604084013590509250925092565b60006020828403121561131357600080fd5b610da58261127f565b6000806040838503121561132f57600080fd5b6113388361127f565b91506020830135801515811461134d57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561138957611389611358565b604051601f8501601f19908116603f011681019082821181831017156113b1576113b1611358565b816040528093508581528686860111156113ca57600080fd5b858560208301376000602087830101525050509392505050565b600080600080608085870312156113fa57600080fd5b6114038561127f565b93506114116020860161127f565b925060408501359150606085013567ffffffffffffffff81111561143457600080fd5b8501601f8101871361144557600080fd5b6114548782356020840161136e565b91505092959194509250565b6000806040838503121561147357600080fd5b61147c8361127f565b915061148a6020840161127f565b90509250929050565b600080604083850312156114a657600080fd5b6114af8361127f565b9150602083013567ffffffffffffffff8111156114cb57600080fd5b8301601f810185136114dc57600080fd5b6114eb8582356020840161136e565b9150509250929050565b600181811c9082168061150957607f821691505b60208210810361152957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000835161158f818460208801611203565b8351908301906115a3818360208801611203565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016115d4576115d46115ac565b5060010190565b60018060a01b03841681528260208201526060604082015260006116026060830184611227565b95945050505050565b818103818111156102da576102da6115ac565b808201808211156102da576102da6115ac565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b601f8211156104ae57600081815260208120601f850160051c810160208610156116aa5750805b601f850160051c820191505b818110156116c9578281556001016116b6565b505050505050565b815167ffffffffffffffff8111156116eb576116eb611358565b6116ff816116f984546114f5565b84611683565b602080601f831160018114611734576000841561171c5750858301515b600019600386901b1c1916600185901b1785556116c9565b600085815260208120601f198616915b8281101561176357888601518255948401946001909101908401611744565b50858210156117815787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906117c490830184611227565b9695505050505050565b6000602082840312156117e057600080fd5b8151610da5816111d0565b634e487b7160e01b600052601260045260246000fd5b600082611810576118106117eb565b500490565b600082611824576118246117eb565b500690565b634e487b7160e01b600052603260045260246000fdfea264697066735822122055b4e07304fe036fe3f04e44a7921cbb4fce75fcf1885d1110f1e529fecb60a764736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e22387d314610030575b600080fd5b61003861003a565b005b60016064600a42600061005082620151806102cd565b6000546040516316293fa360e31b81526001600160a01b03888116600483015260248201889052604482018790526064820186905260848201849052600160a4830181905260c483018190529394508392169063b149fd189060e401600060405180830381600087803b1580156100c657600080fd5b505af11580156100da573d6000803e3d6000fd5b5050505060006100ea600061025f565b6000805460405163db631a8960e01b81526004810184905292935090916001600160a01b039091169063db631a899060240161018060405180830381865afa15801561013a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015e919061034a565b80519091506001600160a01b0316301461017a5761017a610406565b886001600160a01b031681602001516001600160a01b03161461019f5761019f610406565b878160400151146101b2576101b2610406565b878160600151146101c5576101c5610406565b868160800151146101d8576101d8610406565b858160c00151146101eb576101eb610406565b848160e00151146101fe576101fe610406565b6101008101511561021157610211610406565b83151581610160015115151461022957610229610406565b82151581610120015115151461024157610241610406565b6101408101511561025457610254610406565b505050505050505050565b60003361026d60014361041c565b60405160609290921b6bffffffffffffffffffffffff1916602083015240603482015260548101839052607401604051602081830303815290604052805190602001209050919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102e0576102e06102b7565b92915050565b604051610180810167ffffffffffffffff8111828210171561031857634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b038116811461033557600080fd5b919050565b8051801515811461033557600080fd5b6000610180828403121561035d57600080fd5b6103656102e6565b61036e8361031e565b815261037c6020840161031e565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101206103d781850161033a565b908201526101406103e984820161033a565b908201526101606103fb84820161033a565b908201529392505050565b634e487b7160e01b600052600160045260246000fd5b818103818111156102e0576102e06102b756fea2646970667358221220fb999c7b64e1f1adfa2819529681fb8b4da747620c8ff7d4a077803d73d13b1464736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/MyContract.sol:MyContract": {"srcmap": "88:142:36:-:0;;;;;;;;;;;;;;;;;;;", "srcmap-runtime": "88:142:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:114;;;;;;:::i;:::-;;:::i;:::-;;;195:26;;-1:-1:-1;;;;;195:18:36;;;:26;;;;;214:6;;195:26;;;;214:6;195:18;:26;;;;;;;;;;;;;;;;;;;;;114:114;;:::o;14:362:50:-;90:6;98;151:2;139:9;130:7;126:23;122:32;119:52;;;167:1;164;157:12;119:52;193:23;;-1:-1:-1;;;;;245:31:50;;235:42;;225:70;;291:1;288;281:12;225:70;314:5;366:2;351:18;;;;338:32;;-1:-1:-1;;;14:362:50:o", "abi": "[{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "608060405234801561001057600080fd5b5060e48061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80636f64234e14602d575b600080fd5b603c60383660046078565b603e565b005b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156073573d6000803e3d6000fd5b505050565b60008060408385031215608a57600080fd5b82356001600160a01b038116811460a057600080fd5b94602093909301359350505056fea2646970667358221220c14c85e10f89f11f66176b2f8c7f33b818825a52f2febf0c9a0d5df058f46aee64736f6c63430008100033", "bin-runtime": "6080604052348015600f57600080fd5b506004361060285760003560e01c80636f64234e14602d575b600080fd5b603c60383660046078565b603e565b005b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156073573d6000803e3d6000fd5b505050565b60008060408385031215608a57600080fd5b82356001600160a01b038116811460a057600080fd5b94602093909301359350505056fea2646970667358221220c14c85e10f89f11f66176b2f8c7f33b818825a52f2febf0c9a0d5df058f46aee64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/MyContract.sol:MyContractTest": {"srcmap": "249:582:36:-:0;;;;;;;;;;;;;;;;;;;", "srcmap-runtime": "249:582:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;315:70;;;:::i;:::-;;391:438;;;:::i;315:70::-;362:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;349:10:36;:29;;-1:-1:-1;;;;;;349:29:36;-1:-1:-1;;;;;349:29:36;;;;;;;;;;315:70::o;391:438::-;433:25;608:10;:39;;-1:-1:-1;;;608:39:36;;469:42;608:39;;;204:51:50;;;539:7:36;271:18:50;;;264:34;;;469:42:36;;539:7;;581:17;;;-1:-1:-1;;;;;608:10:36;;:20;;177:18:50;;608:39:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;680:17:36;;;793:28;;;786:36;;;;:::i;:::-;423:406;;;;391:438::o;-1:-1:-1:-;;;;;;;;:::o;309:127:50:-;370:10;365:3;361:20;358:1;351:31;401:4;398:1;391:15;425:4;422:1;415:15", "abi": "[{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSendFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "608060405234801561001057600080fd5b5061029c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630a9254e41461003b5780631d8979a514610045575b600080fd5b61004361004d565b005b610043610098565b60405161005990610140565b604051809103906000f080158015610075573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546040516337b211a760e11b81527377b6ddba6afb1a74979011a07d078be28f8bf83560048201819052670de0b6b3a764000060248301819052909290918331916001600160a01b031690636f64234e90604401600060405180830381600087803b15801561010857600080fd5b505af115801561011c573d6000803e3d6000fd5b505050506001600160a01b0383163181811061013a5761013a61014d565b50505050565b6101038061016483390190565b634e487b7160e01b600052600160045260246000fdfe608060405234801561001057600080fd5b5060e48061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80636f64234e14602d575b600080fd5b603c60383660046078565b603e565b005b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156073573d6000803e3d6000fd5b505050565b60008060408385031215608a57600080fd5b82356001600160a01b038116811460a057600080fd5b94602093909301359350505056fea2646970667358221220c14c85e10f89f11f66176b2f8c7f33b818825a52f2febf0c9a0d5df058f46aee64736f6c63430008100033a2646970667358221220b8cc77ca4137f2642605b1a2ec77accff40b0f51525773a40e554d7a88fb9e0e64736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b50600436106100365760003560e01c80630a9254e41461003b5780631d8979a514610045575b600080fd5b61004361004d565b005b610043610098565b60405161005990610140565b604051809103906000f080158015610075573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546040516337b211a760e11b81527377b6ddba6afb1a74979011a07d078be28f8bf83560048201819052670de0b6b3a764000060248301819052909290918331916001600160a01b031690636f64234e90604401600060405180830381600087803b15801561010857600080fd5b505af115801561011c573d6000803e3d6000fd5b505050506001600160a01b0383163181811061013a5761013a61014d565b50505050565b6101038061016483390190565b634e487b7160e01b600052600160045260246000fdfe608060405234801561001057600080fd5b5060e48061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80636f64234e14602d575b600080fd5b603c60383660046078565b603e565b005b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156073573d6000803e3d6000fd5b505050565b60008060408385031215608a57600080fd5b82356001600160a01b038116811460a057600080fd5b94602093909301359350505056fea2646970667358221220c14c85e10f89f11f66176b2f8c7f33b818825a52f2febf0c9a0d5df058f46aee64736f6c63430008100033a2646970667358221220b8cc77ca4137f2642605b1a2ec77accff40b0f51525773a40e554d7a88fb9e0e64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/NFTReward.sol:NFTReward": {"srcmap": "378:1883:37:-:0;;;;;;;;;;;;;;;;;;;", "srcmap-runtime": "378:1883:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:237;;;;;;:::i;:::-;;:::i;:::-;;;565:14:50;;558:22;540:41;;528:2;513:18;2022:237:37;;;;;;;;2931:98:6;;;:::i;:::-;;;;;;;:::i;4407:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:50;;;1679:51;;1667:2;1652:18;4407:167:6;1533:203:50;3928:418:6;;;;;;:::i;:::-;;:::i;:::-;;5084:327;;;;;;:::i;:::-;;:::i;5477:179::-;;;;;;:::i;:::-;;:::i;999:309:37:-;;;;;;:::i;:::-;;:::i;2651:218:6:-;;;;;;:::i;:::-;;:::i;1495:293:37:-;;;;;;:::i;:::-;;:::i;:::-;;;4667:25:50;;;4655:2;4640:18;1495:293:37;4521:177:50;2390:204:6;;;;;;:::i;:::-;;:::i;605:23:37:-;;;;;;3093:102:6;;;:::i;4641:153::-;;;;;;:::i;:::-;;:::i;509:26:37:-;;;;;-1:-1:-1;;;;;509:26:37;;;5722:315:6;;;;;;:::i;:::-;;:::i;747:608:9:-;;;;;;:::i;:::-;;:::i;4860:162:6:-;;;;;;:::i;:::-;;:::i;716:17:37:-;;;:::i;2022:237::-;2146:4;-1:-1:-1;;;;;;2169:43:37;;-1:-1:-1;;;2169:43:37;;:83;;;2216:36;2240:11;2216:23;:36::i;:::-;2162:90;2022:237;-1:-1:-1;;2022:237:37:o;2931:98:6:-;2985:13;3017:5;3010:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2931:98;:::o;4407:167::-;4483:7;4502:23;4517:7;4502:14;:23::i;:::-;-1:-1:-1;4543:24:6;;;;:15;:24;;;;;;-1:-1:-1;;;;;4543:24:6;;4407:167::o;3928:418::-;4008:13;4024:34;4050:7;4024:25;:34::i;:::-;4008:50;;4082:5;-1:-1:-1;;;;;4076:11:6;:2;-1:-1:-1;;;;;4076:11:6;;4068:57;;;;-1:-1:-1;;;4068:57:6;;6579:2:50;4068:57:6;;;6561:21:50;6618:2;6598:18;;;6591:30;6657:34;6637:18;;;6630:62;-1:-1:-1;;;6708:18:50;;;6701:31;6749:19;;4068:57:6;;;;;;;;;929:10:12;-1:-1:-1;;;;;4157:21:6;;;;:62;;-1:-1:-1;4182:37:6;4199:5;929:10:12;4860:162:6;:::i;4182:37::-;4136:171;;;;-1:-1:-1;;;4136:171:6;;6981:2:50;4136:171:6;;;6963:21:50;7020:2;7000:18;;;6993:30;7059:34;7039:18;;;7032:62;7130:32;7110:18;;;7103:60;7180:19;;4136:171:6;6779:426:50;4136:171:6;4318:21;4327:2;4331:7;4318:8;:21::i;:::-;3998:348;3928:418;;:::o;5084:327::-;5273:41;929:10:12;5306:7:6;5273:18;:41::i;:::-;5265:100;;;;-1:-1:-1;;;5265:100:6;;;;;;;:::i;:::-;5376:28;5386:4;5392:2;5396:7;5376:9;:28::i;5477:179::-;5610:39;5627:4;5633:2;5637:7;5610:39;;;;;;;;;;;;:16;:39::i;999:309:37:-;3111:19:1;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:1;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:1;1476:19:11;:23;;;3219:66:1;;-1:-1:-1;3268:12:1;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:1;;7827:2:50;3157:201:1;;;7809:21:50;7866:2;7846:18;;;7839:30;7905:34;7885:18;;;7878:62;-1:-1:-1;;;7956:18:50;;;7949:44;8010:19;;3157:201:1;7625:410:50;3157:201:1;3368:12;:16;;-1:-1:-1;;3368:16:1;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:1;;;;;3394:65;-1:-1:-1;;;;;1142:26:37;::::1;1134:71;;;::::0;-1:-1:-1;;;1134:71:37;;8242:2:50;1134:71:37::1;::::0;::::1;8224:21:50::0;;;8261:18;;;8254:30;8320:34;8300:18;;;8293:62;8372:18;;1134:71:37::1;8040:356:50::0;1134:71:37::1;1215:29;1229:5;1236:7;1215:13;:29::i;:::-;1255:11;:26:::0;;-1:-1:-1;;;;;;1255:26:37::1;-1:-1:-1::0;;;;;1255:26:37;::::1;;::::0;;1291:3:::1;:10;1297:4:::0;1291:3;:10:::1;:::i;:::-;;3483:14:1::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:1;;;3553:14;;-1:-1:-1;10757:36:50;;3553:14:1;;10745:2:50;10730:18;3553:14:1;;;;;;;3479:99;3101:483;999:309:37;;;;:::o;2651:218:6:-;2723:7;2758:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2758:16:6;;2784:56;;;;-1:-1:-1;;;2784:56:6;;11006:2:50;2784:56:6;;;10988:21:50;11045:2;11025:18;;;11018:30;-1:-1:-1;;;11064:18:50;;;11057:54;11128:18;;2784:56:6;10804:348:50;1495:293:37;1582:11;;1539:7;;-1:-1:-1;;;;;1582:11:37;929:10:12;-1:-1:-1;;;;;1566:27:37;;1558:65;;;;-1:-1:-1;;;1558:65:37;;11359:2:50;1558:65:37;;;11341:21:50;11398:2;11378:18;;;11371:30;11437:27;11417:18;;;11410:55;11482:18;;1558:65:37;11157:349:50;1558:65:37;1635:8;;1633:10;;;;;:::i;:::-;;;;-1:-1:-1;1668:8:37;;1653:24;;1663:3;;1653:9;:24::i;:::-;1687:27;1700:8;;1710:3;1687:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:27::i;:::-;1730:26;1737:3;1742:8;;1752:3;1730:26;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1773:8:37;;;1495:293::o;2390:204:6:-;2462:7;-1:-1:-1;;;;;2489:19:6;;2481:73;;;;-1:-1:-1;;;2481:73:6;;13122:2:50;2481:73:6;;;13104:21:50;13161:2;13141:18;;;13134:30;13200:34;13180:18;;;13173:62;-1:-1:-1;;;13251:18:50;;;13244:39;13300:19;;2481:73:6;12920:405:50;2481:73:6;-1:-1:-1;;;;;;2571:16:6;;;;;:9;:16;;;;;;;2390:204::o;3093:102::-;3149:13;3181:7;3174:14;;;;;:::i;4641:153::-;4735:52;929:10:12;4768:8:6;4778;4735:18;:52::i;:::-;4641:153;;:::o;5722:315::-;5890:41;929:10:12;5923:7:6;5890:18;:41::i;:::-;5882:100;;;;-1:-1:-1;;;5882:100:6;;;;;;;:::i;:::-;5992:38;6006:4;6012:2;6016:7;6025:4;5992:13;:38::i;:::-;5722:315;;;;:::o;747:608:9:-;820:13;845:23;860:7;845:14;:23::i;:::-;879;905:19;;;:10;:19;;;;;879:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;934:18;955:10;3855:9:6;;;;;;;;;-1:-1:-1;3855:9:6;;;3779:92;955:10:9;934:31;;1044:4;1038:18;1060:1;1038:23;1034:70;;-1:-1:-1;1084:9:9;747:608;-1:-1:-1;;747:608:9:o;1034:70::-;1206:23;;:27;1202:106;;1280:4;1286:9;1263:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1249:48;;;;747:608;;;:::o;1202:106::-;1325:23;1340:7;1325:14;:23::i;:::-;1318:30;747:608;-1:-1:-1;;;;747:608:9:o;4860:162:6:-;-1:-1:-1;;;;;4980:25:6;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4860:162::o;716:17:37:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1987:344:6:-;2111:4;-1:-1:-1;;;;;;2146:51:6;;-1:-1:-1;;;2146:51:6;;:126;;-1:-1:-1;;;;;;;2213:59:6;;-1:-1:-1;;;2213:59:6;2146:126;:178;;;-1:-1:-1;;;;;;;;;;1168:51:15;;;2288:36:6;1060:166:15;12173:133:6;7571:4;7594:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7594:16:6;12246:53;;;;-1:-1:-1;;;12246:53:6;;11006:2:50;12246:53:6;;;10988:21:50;11045:2;11025:18;;;11018:30;-1:-1:-1;;;11064:18:50;;;11057:54;11128:18;;12246:53:6;10804:348:50;12246:53:6;12173:133;:::o;11464:182::-;11538:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11538:29:6;-1:-1:-1;;;;;11538:29:6;;;;;;;;:24;;11591:34;11538:24;11591:25;:34::i;:::-;-1:-1:-1;;;;;11582:57:6;;;;;;;;;;;11464:182;;:::o;7789:272::-;7882:4;7898:13;7914:34;7940:7;7914:25;:34::i;:::-;7898:50;;7977:5;-1:-1:-1;;;;;7966:16:6;:7;-1:-1:-1;;;;;7966:16:6;;:52;;;;7986:32;8003:5;8010:7;7986:16;:32::i;:::-;7966:87;;;;8046:7;-1:-1:-1;;;;;8022:31:6;:20;8034:7;8022:11;:20::i;:::-;-1:-1:-1;;;;;8022:31:6;;7958:96;7789:272;-1:-1:-1;;;;7789:272:6:o;10736:616::-;10901:4;-1:-1:-1;;;;;10863:42:6;:34;10889:7;10863:25;:34::i;:::-;-1:-1:-1;;;;;10863:42:6;;10855:92;;;;-1:-1:-1;;;10855:92:6;;14033:2:50;10855:92:6;;;14015:21:50;14072:2;14052:18;;;14045:30;14111:34;14091:18;;;14084:62;-1:-1:-1;;;14162:18:50;;;14155:35;14207:19;;10855:92:6;13831:401:50;10855:92:6;-1:-1:-1;;;;;10965:16:6;;10957:65;;;;-1:-1:-1;;;10957:65:6;;14439:2:50;10957:65:6;;;14421:21:50;14478:2;14458:18;;;14451:30;14517:34;14497:18;;;14490:62;-1:-1:-1;;;14568:18:50;;;14561:34;14612:19;;10957:65:6;14237:400:50;10957:65:6;11134:29;11151:1;11155:7;11134:8;:29::i;:::-;-1:-1:-1;;;;;11174:15:6;;;;;;:9;:15;;;;;:20;;11193:1;;11174:15;:20;;11193:1;;11174:20;:::i;:::-;;;;-1:-1:-1;;;;;;;11204:13:6;;;;;;:9;:13;;;;;:18;;11221:1;;11204:13;:18;;11221:1;;11204:18;:::i;:::-;;;;-1:-1:-1;;11232:16:6;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;11232:21:6;-1:-1:-1;;;;;11232:21:6;;;;;;;;;11269:27;;11232:16;;11269:27;;;;;;;3998:348;3928:418;;:::o;1605:149::-;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1708:39:6::1;1732:5;1739:7;1708:23;:39::i;8391:108::-:0;8466:26;8476:2;8480:7;8466:26;;;;;;;;;;;;:9;:26::i;1502:214:9:-;7571:4:6;7594:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7594:16:6;1593:75:9;;;;-1:-1:-1;;;1593:75:9;;15519:2:50;1593:75:9;;;15501:21:50;15558:2;15538:18;;;15531:30;15597:34;15577:18;;;15570:62;-1:-1:-1;;;15648:18:50;;;15641:44;15702:19;;1593:75:9;15317:410:50;1593:75:9;1678:19;;;;:10;:19;;;;;:31;1700:9;1678:19;:31;:::i;11782:307:6:-;11932:8;-1:-1:-1;;;;;11923:17:6;:5;-1:-1:-1;;;;;11923:17:6;;11915:55;;;;-1:-1:-1;;;11915:55:6;;15934:2:50;11915:55:6;;;15916:21:50;15973:2;15953:18;;;15946:30;16012:27;15992:18;;;15985:55;16057:18;;11915:55:6;15732:349:50;11915:55:6;-1:-1:-1;;;;;11980:25:6;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11980:46:6;;;;;;;;;;12041:41;;540::50;;;12041::6;;513:18:50;12041:41:6;;;;;;;11782:307;;;:::o;6898:305::-;7048:28;7058:4;7064:2;7068:7;7048:9;:28::i;:::-;7094:47;7117:4;7123:2;7127:7;7136:4;7094:22;:47::i;:::-;7086:110;;;;-1:-1:-1;;;7086:110:6;;;;;;;:::i;3261:276::-;3334:13;3359:23;3374:7;3359:14;:23::i;:::-;3393:21;3417:10;3855:9;;;;;;;;;-1:-1:-1;3855:9:6;;;3779:92;3417:10;3393:34;;3468:1;3450:7;3444:21;:25;:86;;;;;;;;;;;;;;;;;3496:7;3505:18;:7;:16;:18::i;:::-;3479:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3444:86;3437:93;3261:276;-1:-1:-1;;;3261:276:6:o;1760:160::-;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1873:5:6::1;:13;1881:5:::0;1873;:13:::1;:::i;:::-;-1:-1:-1::0;1896:7:6::1;:17;1906:7:::0;1896;:17:::1;:::i;8720:309::-:0;8844:18;8850:2;8854:7;8844:5;:18::i;:::-;8893:53;8924:1;8928:2;8932:7;8941:4;8893:22;:53::i;:::-;8872:150;;;;-1:-1:-1;;;8872:150:6;;;;;;;:::i;12858:853::-;13007:4;-1:-1:-1;;;;;13027:13:6;;1476:19:11;:23;13023:682:6;;13062:82;;-1:-1:-1;;;13062:82:6;;-1:-1:-1;;;;;13062:47:6;;;;;:82;;929:10:12;;13124:4:6;;13130:7;;13139:4;;13062:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13062:82:6;;;;;;;;-1:-1:-1;;13062:82:6;;;;;;;;;;;;:::i;:::-;;;13058:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13322:6;:13;13339:1;13322:18;13318:321;;13364:60;;-1:-1:-1;;;13364:60:6;;;;;;;:::i;13318:321::-;13591:6;13585:13;13576:6;13572:2;13568:15;13561:38;13058:595;-1:-1:-1;;;;;;13194:62:6;-1:-1:-1;;;13194:62:6;;-1:-1:-1;13187:69:6;;13023:682;-1:-1:-1;13690:4:6;12858:853;;;;;;:::o;403:703:13:-;459:13;676:5;685:1;676:10;672:51;;-1:-1:-1;;702:10:13;;;;;;;;;;;;-1:-1:-1;;;702:10:13;;;;;403:703::o;672:51::-;747:5;732:12;786:75;793:9;;786:75;;818:8;;;;:::i;:::-;;-1:-1:-1;840:10:13;;-1:-1:-1;848:2:13;840:10;;:::i;:::-;;;786:75;;;870:19;902:6;892:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;892:17:13;;870:39;;919:150;926:10;;919:150;;952:11;962:1;952:11;;:::i;:::-;;-1:-1:-1;1020:10:13;1028:2;1020:5;:10;:::i;:::-;1007:24;;:2;:24;:::i;:::-;994:39;;977:6;984;977:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;977:56:13;;;;;;;;-1:-1:-1;1047:11:13;1056:2;1047:11;;:::i;:::-;;;919:150;;9351:427:6;-1:-1:-1;;;;;9430:16:6;;9422:61;;;;-1:-1:-1;;;9422:61:6;;17961:2:50;9422:61:6;;;17943:21:50;;;17980:18;;;17973:30;18039:34;18019:18;;;18012:62;18091:18;;9422:61:6;17759:356:50;9422:61:6;7571:4;7594:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7594:16:6;:30;9493:58;;;;-1:-1:-1;;;9493:58:6;;18322:2:50;9493:58:6;;;18304:21:50;18361:2;18341:18;;;18334:30;18400;18380:18;;;18373:58;18448:18;;9493:58:6;18120:352:50;9493:58:6;-1:-1:-1;;;;;9618:13:6;;;;;;:9;:13;;;;;:18;;9635:1;;9618:13;:18;;9635:1;;9618:18;:::i;:::-;;;;-1:-1:-1;;9646:16:6;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9646:21:6;-1:-1:-1;;;;;9646:21:6;;;;;;;;9683:33;;9646:16;;;9683:33;;9646:16;;9683:33;4641:153;;:::o;14:131:50:-;-1:-1:-1;;;;;;88:32:50;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:50;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:50;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:50:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:50;;1348:180;-1:-1:-1;1348:180:50:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:50;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:50:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:127::-;2572:10;2567:3;2563:20;2560:1;2553:31;2603:4;2600:1;2593:15;2627:4;2624:1;2617:15;2643:632;2708:5;2738:18;2779:2;2771:6;2768:14;2765:40;;;2785:18;;:::i;:::-;2860:2;2854:9;2828:2;2914:15;;-1:-1:-1;;2910:24:50;;;2936:2;2906:33;2902:42;2890:55;;;2960:18;;;2980:22;;;2957:46;2954:72;;;3006:18;;:::i;:::-;3046:10;3042:2;3035:22;3075:6;3066:15;;3105:6;3097;3090:22;3145:3;3136:6;3131:3;3127:16;3124:25;3121:45;;;3162:1;3159;3152:12;3121:45;3212:6;3207:3;3200:4;3192:6;3188:17;3175:44;3267:1;3260:4;3251:6;3243;3239:19;3235:30;3228:41;;;;2643:632;;;;;:::o;3280:222::-;3323:5;3376:3;3369:4;3361:6;3357:17;3353:27;3343:55;;3394:1;3391;3384:12;3343:55;3416:80;3492:3;3483:6;3470:20;3463:4;3455:6;3451:17;3416:80;:::i;3507:818::-;3623:6;3631;3639;3647;3700:3;3688:9;3679:7;3675:23;3671:33;3668:53;;;3717:1;3714;3707:12;3668:53;3740:29;3759:9;3740:29;:::i;:::-;3730:39;;3820:2;3809:9;3805:18;3792:32;3843:18;3884:2;3876:6;3873:14;3870:34;;;3900:1;3897;3890:12;3870:34;3923:50;3965:7;3956:6;3945:9;3941:22;3923:50;:::i;:::-;3913:60;;4026:2;4015:9;4011:18;3998:32;3982:48;;4055:2;4045:8;4042:16;4039:36;;;4071:1;4068;4061:12;4039:36;4094:52;4138:7;4127:8;4116:9;4112:24;4094:52;:::i;:::-;4084:62;;4199:2;4188:9;4184:18;4171:32;4155:48;;4228:2;4218:8;4215:16;4212:36;;;4244:1;4241;4234:12;4212:36;;4267:52;4311:7;4300:8;4289:9;4285:24;4267:52;:::i;:::-;4257:62;;;3507:818;;;;;;;:::o;4330:186::-;4389:6;4442:2;4430:9;4421:7;4417:23;4413:32;4410:52;;;4458:1;4455;4448:12;4410:52;4481:29;4500:9;4481:29;:::i;4703:347::-;4768:6;4776;4829:2;4817:9;4808:7;4804:23;4800:32;4797:52;;;4845:1;4842;4835:12;4797:52;4868:29;4887:9;4868:29;:::i;:::-;4858:39;;4947:2;4936:9;4932:18;4919:32;4994:5;4987:13;4980:21;4973:5;4970:32;4960:60;;5016:1;5013;5006:12;4960:60;5039:5;5029:15;;;4703:347;;;;;:::o;5055:667::-;5150:6;5158;5166;5174;5227:3;5215:9;5206:7;5202:23;5198:33;5195:53;;;5244:1;5241;5234:12;5195:53;5267:29;5286:9;5267:29;:::i;:::-;5257:39;;5315:38;5349:2;5338:9;5334:18;5315:38;:::i;:::-;5305:48;;5400:2;5389:9;5385:18;5372:32;5362:42;;5455:2;5444:9;5440:18;5427:32;5482:18;5474:6;5471:30;5468:50;;;5514:1;5511;5504:12;5468:50;5537:22;;5590:4;5582:13;;5578:27;-1:-1:-1;5568:55:50;;5619:1;5616;5609:12;5568:55;5642:74;5708:7;5703:2;5690:16;5685:2;5681;5677:11;5642:74;:::i;5727:260::-;5795:6;5803;5856:2;5844:9;5835:7;5831:23;5827:32;5824:52;;;5872:1;5869;5862:12;5824:52;5895:29;5914:9;5895:29;:::i;:::-;5885:39;;5943:38;5977:2;5966:9;5962:18;5943:38;:::i;:::-;5933:48;;5727:260;;;;;:::o;5992:380::-;6071:1;6067:12;;;;6114;;;6135:61;;6189:4;6181:6;6177:17;6167:27;;6135:61;6242:2;6234:6;6231:14;6211:18;6208:38;6205:161;;6288:10;6283:3;6279:20;6276:1;6269:31;6323:4;6320:1;6313:15;6351:4;6348:1;6341:15;6205:161;;5992:380;;;:::o;7210:410::-;7412:2;7394:21;;;7451:2;7431:18;;;7424:30;7490:34;7485:2;7470:18;;7463:62;-1:-1:-1;;;7556:2:50;7541:18;;7534:44;7610:3;7595:19;;7210:410::o;8527:545::-;8629:2;8624:3;8621:11;8618:448;;;8665:1;8690:5;8686:2;8679:17;8735:4;8731:2;8721:19;8805:2;8793:10;8789:19;8786:1;8782:27;8776:4;8772:38;8841:4;8829:10;8826:20;8823:47;;;-1:-1:-1;8864:4:50;8823:47;8919:2;8914:3;8910:12;8907:1;8903:20;8897:4;8893:31;8883:41;;8974:82;8992:2;8985:5;8982:13;8974:82;;;9037:17;;;9018:1;9007:13;8974:82;;;8978:3;;;8527:545;;;:::o;9248:1352::-;9374:3;9368:10;9401:18;9393:6;9390:30;9387:56;;;9423:18;;:::i;:::-;9452:97;9542:6;9502:38;9534:4;9528:11;9502:38;:::i;:::-;9496:4;9452:97;:::i;:::-;9604:4;;9668:2;9657:14;;9685:1;9680:663;;;;10387:1;10404:6;10401:89;;;-1:-1:-1;10456:19:50;;;10450:26;10401:89;-1:-1:-1;;9205:1:50;9201:11;;;9197:24;9193:29;9183:40;9229:1;9225:11;;;9180:57;10503:81;;9650:944;;9680:663;8474:1;8467:14;;;8511:4;8498:18;;-1:-1:-1;;9716:20:50;;;9834:236;9848:7;9845:1;9842:14;9834:236;;;9937:19;;;9931:26;9916:42;;10029:27;;;;9997:1;9985:14;;;;9864:19;;9834:236;;;9838:3;10098:6;10089:7;10086:19;10083:201;;;10159:19;;;10153:26;-1:-1:-1;;10242:1:50;10238:14;;;10254:3;10234:24;10230:37;10226:42;10211:58;10196:74;;10083:201;-1:-1:-1;;;;;10330:1:50;10314:14;;;10310:22;10297:36;;-1:-1:-1;9248:1352:50:o;11511:127::-;11572:10;11567:3;11563:20;11560:1;11553:31;11603:4;11600:1;11593:15;11627:4;11624:1;11617:15;11643:135;11682:3;11703:17;;;11700:43;;11723:18;;:::i;:::-;-1:-1:-1;11770:1:50;11759:13;;11643:135::o;11783:1132::-;12014:1;12010;12005:3;12001:11;11997:19;11989:6;11985:32;11974:9;11967:51;11948:4;12037:2;12075:6;12070:2;12059:9;12055:18;12048:34;12118:2;12113;12102:9;12098:18;12091:30;12141:1;12174:6;12168:13;12204:36;12230:9;12204:36;:::i;:::-;12276:6;12271:2;12260:9;12256:18;12249:34;12302:3;12324:1;12356:2;12345:9;12341:18;12373:1;12368:158;;;;12540:1;12535:354;;;;12334:555;;12368:158;-1:-1:-1;;12416:24:50;;12396:18;;;12389:52;12494:14;;12487:22;12484:1;12480:30;12465:46;;12461:55;;;-1:-1:-1;12368:158:50;;12535:354;12566:6;12563:1;12556:17;12614:2;12611:1;12601:16;12639:1;12653:180;12667:6;12664:1;12661:13;12653:180;;;12760:14;;12736:17;;;12732:26;;12725:50;12803:16;;;;12682:10;;12653:180;;;12857:17;;12853:26;;;-1:-1:-1;;12334:555:50;-1:-1:-1;12906:3:50;;11783:1132;-1:-1:-1;;;;;;;;;;11783:1132:50:o;13330:496::-;13509:3;13547:6;13541:13;13563:66;13622:6;13617:3;13610:4;13602:6;13598:17;13563:66;:::i;:::-;13692:13;;13651:16;;;;13714:70;13692:13;13651:16;13761:4;13749:17;;13714:70;:::i;:::-;13800:20;;13330:496;-1:-1:-1;;;;13330:496:50:o;14642:128::-;14709:9;;;14730:11;;;14727:37;;;14744:18;;:::i;14775:125::-;14840:9;;;14861:10;;;14858:36;;;14874:18;;:::i;14905:407::-;15107:2;15089:21;;;15146:2;15126:18;;;15119:30;15185:34;15180:2;15165:18;;15158:62;-1:-1:-1;;;15251:2:50;15236:18;;15229:41;15302:3;15287:19;;14905:407::o;16086:414::-;16288:2;16270:21;;;16327:2;16307:18;;;16300:30;16366:34;16361:2;16346:18;;16339:62;-1:-1:-1;;;16432:2:50;16417:18;;16410:48;16490:3;16475:19;;16086:414::o;16505:489::-;-1:-1:-1;;;;;16774:15:50;;;16756:34;;16826:15;;16821:2;16806:18;;16799:43;16873:2;16858:18;;16851:34;;;16921:3;16916:2;16901:18;;16894:31;;;16699:4;;16942:46;;16968:19;;16960:6;16942:46;:::i;:::-;16934:54;16505:489;-1:-1:-1;;;;;;16505:489:50:o;16999:249::-;17068:6;17121:2;17109:9;17100:7;17096:23;17092:32;17089:52;;;17137:1;17134;17127:12;17089:52;17169:9;17163:16;17188:30;17212:5;17188:30;:::i;17253:127::-;17314:10;17309:3;17305:20;17302:1;17295:31;17345:4;17342:1;17335:15;17369:4;17366:1;17359:15;17385:120;17425:1;17451;17441:35;;17456:18;;:::i;:::-;-1:-1:-1;17490:9:50;;17385:120::o;17510:112::-;17542:1;17568;17558:35;;17573:18;;:::i;:::-;-1:-1:-1;17607:9:50;;17510:112::o;17627:127::-;17688:10;17683:3;17679:20;17676:1;17669:31;17719:4;17716:1;17709:15;17743:4;17740:1;17733:15", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_learnToEarn\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"learnToEarn\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", "bin": "608060405234801561001057600080fd5b50611bab806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a2578063a4e8aaae11610071578063a4e8aaae1461023c578063b88d4fde1461024f578063c87b56dd14610262578063e985e9c514610275578063eac989f81461028857600080fd5b806370a0823114610205578063714cff561461021857806395d89b4114610221578063a22cb4651461022957600080fd5b806323b872dd116100e957806323b872dd1461019857806342842e0e146101ab5780635f1e6f6d146101be5780636352211e146101d15780636a627842146101e457600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e610129366004611414565b610290565b60405190151581526020015b60405180910390f35b61014b6102bb565b60405161013a9190611481565b61016b610166366004611494565b61034d565b6040516001600160a01b03909116815260200161013a565b6101966101913660046114c9565b610374565b005b6101966101a63660046114f3565b61048e565b6101966101b93660046114f3565b6104bf565b6101966101cc3660046115db565b6104da565b61016b6101df366004611494565b61066f565b6101f76101f2366004611674565b6106cf565b60405190815260200161013a565b6101f7610213366004611674565b610832565b6101f760ca5481565b61014b6108b8565b61019661023736600461168f565b6108c7565b60c95461016b906001600160a01b031681565b61019661025d3660046116cb565b6108d6565b61014b610270366004611494565b61090e565b61012e61028336600461173b565b610a1e565b61014b610a4c565b60006001600160e01b0319821663357c172f60e01b14806102b557506102b582610ada565b92915050565b6060606580546102ca9061176e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f69061176e565b80156103435780601f1061031857610100808354040283529160200191610343565b820191906000526020600020905b81548152906001019060200180831161032657829003601f168201915b5050505050905090565b600061035882610b2a565b506000908152606960205260409020546001600160a01b031690565b600061037f8261066f565b9050806001600160a01b0316836001600160a01b0316036103f15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061040d575061040d8133610a1e565b61047f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103e8565b6104898383610b8c565b505050565b6104983382610bfa565b6104b45760405162461bcd60e51b81526004016103e8906117a8565b610489838383610c58565b610489838383604051806020016040528060008152506108d6565b600054610100900460ff16158080156104fa5750600054600160ff909116105b806105145750303b158015610514575060005460ff166001145b6105775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103e8565b6000805460ff19166001179055801561059a576000805461ff0019166101001790555b6001600160a01b0385166105f05760405162461bcd60e51b815260206004820181905260248201527f4c6561726e546f4561726e2061646472657373206973206e6f742076616c696460448201526064016103e8565b6105fa8484610df4565b60c980546001600160a01b0319166001600160a01b03871617905560cb6106218382611844565b508015610668576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000818152606760205260408120546001600160a01b0316806102b55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103e8565b60c9546000906001600160a01b0316336001600160a01b0316146107355760405162461bcd60e51b815260206004820152601960248201527f43616c6c6572206973206e6f74206c6561726e546f4561726e0000000000000060448201526064016103e8565b60ca600081546107449061191a565b9091555060ca54610756908390610e25565b6107ec60ca5460cb80546107699061176e565b80601f01602080910402602001604051908101604052809291908181526020018280546107959061176e565b80156107e25780601f106107b7576101008083540402835291602001916107e2565b820191906000526020600020905b8154815290600101906020018083116107c557829003601f168201915b5050505050610e3f565b7fe7cd4ce7f2a465edc730269a1305e8a48bad821e8fb7e152ec413829c01a53c48260ca5460cb60405161082293929190611933565b60405180910390a1505060ca5490565b60006001600160a01b03821661089c5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103e8565b506001600160a01b031660009081526068602052604090205490565b6060606680546102ca9061176e565b6108d2338383610ed2565b5050565b6108e03383610bfa565b6108fc5760405162461bcd60e51b81526004016103e8906117a8565b61090884848484610fa0565b50505050565b606061091982610b2a565b600082815260976020526040812080546109329061176e565b80601f016020809104026020016040519081016040528092919081815260200182805461095e9061176e565b80156109ab5780601f10610980576101008083540402835291602001916109ab565b820191906000526020600020905b81548152906001019060200180831161098e57829003601f168201915b5050505050905060006109c960408051602081019091526000815290565b905080516000036109db575092915050565b815115610a0d5780826040516020016109f59291906119d5565b60405160208183030381529060405292505050919050565b610a1684610fd3565b949350505050565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60cb8054610a599061176e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a859061176e565b8015610ad25780601f10610aa757610100808354040283529160200191610ad2565b820191906000526020600020905b815481529060010190602001808311610ab557829003601f168201915b505050505081565b60006001600160e01b031982166380ac58cd60e01b1480610b0b57506001600160e01b03198216635b5e139f60e01b145b806102b557506301ffc9a760e01b6001600160e01b03198316146102b5565b6000818152606760205260409020546001600160a01b0316610b895760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103e8565b50565b600081815260696020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610bc18261066f565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610c068361066f565b9050806001600160a01b0316846001600160a01b03161480610c2d5750610c2d8185610a1e565b80610a165750836001600160a01b0316610c468461034d565b6001600160a01b031614949350505050565b826001600160a01b0316610c6b8261066f565b6001600160a01b031614610ccf5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103e8565b6001600160a01b038216610d315760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103e8565b610d3c600082610b8c565b6001600160a01b0383166000908152606860205260408120805460019290610d65908490611a04565b90915550506001600160a01b0382166000908152606860205260408120805460019290610d93908490611a17565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600054610100900460ff16610e1b5760405162461bcd60e51b81526004016103e890611a2a565b6108d28282611047565b6108d2828260405180602001604052806000815250611087565b6000828152606760205260409020546001600160a01b0316610eba5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b60648201526084016103e8565b60008281526097602052604090206104898282611844565b816001600160a01b0316836001600160a01b031603610f335760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103e8565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610fab848484610c58565b610fb7848484846110ba565b6109085760405162461bcd60e51b81526004016103e890611a75565b6060610fde82610b2a565b6000610ff560408051602081019091526000815290565b905060008151116110155760405180602001604052806000815250611040565b8061101f846111bb565b6040516020016110309291906119d5565b6040516020818303038152906040525b9392505050565b600054610100900460ff1661106e5760405162461bcd60e51b81526004016103e890611a2a565b606561107a8382611844565b5060666104898282611844565b61109183836112bc565b61109e60008484846110ba565b6104895760405162461bcd60e51b81526004016103e890611a75565b60006001600160a01b0384163b156111b057604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906110fe903390899088908890600401611ac7565b6020604051808303816000875af1925050508015611139575060408051601f3d908101601f1916820190925261113691810190611b04565b60015b611196573d808015611167576040519150601f19603f3d011682016040523d82523d6000602084013e61116c565b606091505b50805160000361118e5760405162461bcd60e51b81526004016103e890611a75565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610a16565b506001949350505050565b6060816000036111e25750506040805180820190915260018152600360fc1b602082015290565b8160005b811561120c57806111f68161191a565b91506112059050600a83611b37565b91506111e6565b60008167ffffffffffffffff8111156112275761122761152f565b6040519080825280601f01601f191660200182016040528015611251576020820181803683370190505b5090505b8415610a1657611266600183611a04565b9150611273600a86611b4b565b61127e906030611a17565b60f81b81838151811061129357611293611b5f565b60200101906001600160f81b031916908160001a9053506112b5600a86611b37565b9450611255565b6001600160a01b0382166113125760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016103e8565b6000818152606760205260409020546001600160a01b0316156113775760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016103e8565b6001600160a01b03821660009081526068602052604081208054600192906113a0908490611a17565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b031981168114610b8957600080fd5b60006020828403121561142657600080fd5b8135611040816113fe565b60005b8381101561144c578181015183820152602001611434565b50506000910152565b6000815180845261146d816020860160208601611431565b601f01601f19169290920160200192915050565b6020815260006110406020830184611455565b6000602082840312156114a657600080fd5b5035919050565b80356001600160a01b03811681146114c457600080fd5b919050565b600080604083850312156114dc57600080fd5b6114e5836114ad565b946020939093013593505050565b60008060006060848603121561150857600080fd5b611511846114ad565b925061151f602085016114ad565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156115605761156061152f565b604051601f8501601f19908116603f011681019082821181831017156115885761158861152f565b816040528093508581528686860111156115a157600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126115cc57600080fd5b61104083833560208501611545565b600080600080608085870312156115f157600080fd5b6115fa856114ad565b9350602085013567ffffffffffffffff8082111561161757600080fd5b611623888389016115bb565b9450604087013591508082111561163957600080fd5b611645888389016115bb565b9350606087013591508082111561165b57600080fd5b50611668878288016115bb565b91505092959194509250565b60006020828403121561168657600080fd5b611040826114ad565b600080604083850312156116a257600080fd5b6116ab836114ad565b9150602083013580151581146116c057600080fd5b809150509250929050565b600080600080608085870312156116e157600080fd5b6116ea856114ad565b93506116f8602086016114ad565b925060408501359150606085013567ffffffffffffffff81111561171b57600080fd5b8501601f8101871361172c57600080fd5b61166887823560208401611545565b6000806040838503121561174e57600080fd5b611757836114ad565b9150611765602084016114ad565b90509250929050565b600181811c9082168061178257607f821691505b6020821081036117a257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b601f82111561048957600081815260208120601f850160051c8101602086101561181d5750805b601f850160051c820191505b8181101561183c57828155600101611829565b505050505050565b815167ffffffffffffffff81111561185e5761185e61152f565b6118728161186c845461176e565b846117f6565b602080601f8311600181146118a7576000841561188f5750858301515b600019600386901b1c1916600185901b17855561183c565b600085815260208120601f198616915b828110156118d6578886015182559484019460019091019084016118b7565b50858210156118f45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b60006001820161192c5761192c611904565b5060010190565b60018060a01b0384168152600060208481840152606060408401526000845461195b8161176e565b806060870152608060018084166000811461197d5760018114611997576119c5565b60ff1985168984015283151560051b8901830195506119c5565b896000528660002060005b858110156119bd5781548b82018601529083019088016119a2565b8a0184019650505b50939a9950505050505050505050565b600083516119e7818460208801611431565b8351908301906119fb818360208801611431565b01949350505050565b818103818111156102b5576102b5611904565b808201808211156102b5576102b5611904565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611afa90830184611455565b9695505050505050565b600060208284031215611b1657600080fd5b8151611040816113fe565b634e487b7160e01b600052601260045260246000fd5b600082611b4657611b46611b21565b500490565b600082611b5a57611b5a611b21565b500690565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d16bb6aff2f2b793d1af32b65465db5bd9e4a26159d00e1f31a074311ca5fcd064736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a2578063a4e8aaae11610071578063a4e8aaae1461023c578063b88d4fde1461024f578063c87b56dd14610262578063e985e9c514610275578063eac989f81461028857600080fd5b806370a0823114610205578063714cff561461021857806395d89b4114610221578063a22cb4651461022957600080fd5b806323b872dd116100e957806323b872dd1461019857806342842e0e146101ab5780635f1e6f6d146101be5780636352211e146101d15780636a627842146101e457600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e610129366004611414565b610290565b60405190151581526020015b60405180910390f35b61014b6102bb565b60405161013a9190611481565b61016b610166366004611494565b61034d565b6040516001600160a01b03909116815260200161013a565b6101966101913660046114c9565b610374565b005b6101966101a63660046114f3565b61048e565b6101966101b93660046114f3565b6104bf565b6101966101cc3660046115db565b6104da565b61016b6101df366004611494565b61066f565b6101f76101f2366004611674565b6106cf565b60405190815260200161013a565b6101f7610213366004611674565b610832565b6101f760ca5481565b61014b6108b8565b61019661023736600461168f565b6108c7565b60c95461016b906001600160a01b031681565b61019661025d3660046116cb565b6108d6565b61014b610270366004611494565b61090e565b61012e61028336600461173b565b610a1e565b61014b610a4c565b60006001600160e01b0319821663357c172f60e01b14806102b557506102b582610ada565b92915050565b6060606580546102ca9061176e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f69061176e565b80156103435780601f1061031857610100808354040283529160200191610343565b820191906000526020600020905b81548152906001019060200180831161032657829003601f168201915b5050505050905090565b600061035882610b2a565b506000908152606960205260409020546001600160a01b031690565b600061037f8261066f565b9050806001600160a01b0316836001600160a01b0316036103f15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061040d575061040d8133610a1e565b61047f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103e8565b6104898383610b8c565b505050565b6104983382610bfa565b6104b45760405162461bcd60e51b81526004016103e8906117a8565b610489838383610c58565b610489838383604051806020016040528060008152506108d6565b600054610100900460ff16158080156104fa5750600054600160ff909116105b806105145750303b158015610514575060005460ff166001145b6105775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103e8565b6000805460ff19166001179055801561059a576000805461ff0019166101001790555b6001600160a01b0385166105f05760405162461bcd60e51b815260206004820181905260248201527f4c6561726e546f4561726e2061646472657373206973206e6f742076616c696460448201526064016103e8565b6105fa8484610df4565b60c980546001600160a01b0319166001600160a01b03871617905560cb6106218382611844565b508015610668576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000818152606760205260408120546001600160a01b0316806102b55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103e8565b60c9546000906001600160a01b0316336001600160a01b0316146107355760405162461bcd60e51b815260206004820152601960248201527f43616c6c6572206973206e6f74206c6561726e546f4561726e0000000000000060448201526064016103e8565b60ca600081546107449061191a565b9091555060ca54610756908390610e25565b6107ec60ca5460cb80546107699061176e565b80601f01602080910402602001604051908101604052809291908181526020018280546107959061176e565b80156107e25780601f106107b7576101008083540402835291602001916107e2565b820191906000526020600020905b8154815290600101906020018083116107c557829003601f168201915b5050505050610e3f565b7fe7cd4ce7f2a465edc730269a1305e8a48bad821e8fb7e152ec413829c01a53c48260ca5460cb60405161082293929190611933565b60405180910390a1505060ca5490565b60006001600160a01b03821661089c5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103e8565b506001600160a01b031660009081526068602052604090205490565b6060606680546102ca9061176e565b6108d2338383610ed2565b5050565b6108e03383610bfa565b6108fc5760405162461bcd60e51b81526004016103e8906117a8565b61090884848484610fa0565b50505050565b606061091982610b2a565b600082815260976020526040812080546109329061176e565b80601f016020809104026020016040519081016040528092919081815260200182805461095e9061176e565b80156109ab5780601f10610980576101008083540402835291602001916109ab565b820191906000526020600020905b81548152906001019060200180831161098e57829003601f168201915b5050505050905060006109c960408051602081019091526000815290565b905080516000036109db575092915050565b815115610a0d5780826040516020016109f59291906119d5565b60405160208183030381529060405292505050919050565b610a1684610fd3565b949350505050565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60cb8054610a599061176e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a859061176e565b8015610ad25780601f10610aa757610100808354040283529160200191610ad2565b820191906000526020600020905b815481529060010190602001808311610ab557829003601f168201915b505050505081565b60006001600160e01b031982166380ac58cd60e01b1480610b0b57506001600160e01b03198216635b5e139f60e01b145b806102b557506301ffc9a760e01b6001600160e01b03198316146102b5565b6000818152606760205260409020546001600160a01b0316610b895760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103e8565b50565b600081815260696020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610bc18261066f565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610c068361066f565b9050806001600160a01b0316846001600160a01b03161480610c2d5750610c2d8185610a1e565b80610a165750836001600160a01b0316610c468461034d565b6001600160a01b031614949350505050565b826001600160a01b0316610c6b8261066f565b6001600160a01b031614610ccf5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103e8565b6001600160a01b038216610d315760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103e8565b610d3c600082610b8c565b6001600160a01b0383166000908152606860205260408120805460019290610d65908490611a04565b90915550506001600160a01b0382166000908152606860205260408120805460019290610d93908490611a17565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600054610100900460ff16610e1b5760405162461bcd60e51b81526004016103e890611a2a565b6108d28282611047565b6108d2828260405180602001604052806000815250611087565b6000828152606760205260409020546001600160a01b0316610eba5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b60648201526084016103e8565b60008281526097602052604090206104898282611844565b816001600160a01b0316836001600160a01b031603610f335760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103e8565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610fab848484610c58565b610fb7848484846110ba565b6109085760405162461bcd60e51b81526004016103e890611a75565b6060610fde82610b2a565b6000610ff560408051602081019091526000815290565b905060008151116110155760405180602001604052806000815250611040565b8061101f846111bb565b6040516020016110309291906119d5565b6040516020818303038152906040525b9392505050565b600054610100900460ff1661106e5760405162461bcd60e51b81526004016103e890611a2a565b606561107a8382611844565b5060666104898282611844565b61109183836112bc565b61109e60008484846110ba565b6104895760405162461bcd60e51b81526004016103e890611a75565b60006001600160a01b0384163b156111b057604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906110fe903390899088908890600401611ac7565b6020604051808303816000875af1925050508015611139575060408051601f3d908101601f1916820190925261113691810190611b04565b60015b611196573d808015611167576040519150601f19603f3d011682016040523d82523d6000602084013e61116c565b606091505b50805160000361118e5760405162461bcd60e51b81526004016103e890611a75565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610a16565b506001949350505050565b6060816000036111e25750506040805180820190915260018152600360fc1b602082015290565b8160005b811561120c57806111f68161191a565b91506112059050600a83611b37565b91506111e6565b60008167ffffffffffffffff8111156112275761122761152f565b6040519080825280601f01601f191660200182016040528015611251576020820181803683370190505b5090505b8415610a1657611266600183611a04565b9150611273600a86611b4b565b61127e906030611a17565b60f81b81838151811061129357611293611b5f565b60200101906001600160f81b031916908160001a9053506112b5600a86611b37565b9450611255565b6001600160a01b0382166113125760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016103e8565b6000818152606760205260409020546001600160a01b0316156113775760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016103e8565b6001600160a01b03821660009081526068602052604081208054600192906113a0908490611a17565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b031981168114610b8957600080fd5b60006020828403121561142657600080fd5b8135611040816113fe565b60005b8381101561144c578181015183820152602001611434565b50506000910152565b6000815180845261146d816020860160208601611431565b601f01601f19169290920160200192915050565b6020815260006110406020830184611455565b6000602082840312156114a657600080fd5b5035919050565b80356001600160a01b03811681146114c457600080fd5b919050565b600080604083850312156114dc57600080fd5b6114e5836114ad565b946020939093013593505050565b60008060006060848603121561150857600080fd5b611511846114ad565b925061151f602085016114ad565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156115605761156061152f565b604051601f8501601f19908116603f011681019082821181831017156115885761158861152f565b816040528093508581528686860111156115a157600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126115cc57600080fd5b61104083833560208501611545565b600080600080608085870312156115f157600080fd5b6115fa856114ad565b9350602085013567ffffffffffffffff8082111561161757600080fd5b611623888389016115bb565b9450604087013591508082111561163957600080fd5b611645888389016115bb565b9350606087013591508082111561165b57600080fd5b50611668878288016115bb565b91505092959194509250565b60006020828403121561168657600080fd5b611040826114ad565b600080604083850312156116a257600080fd5b6116ab836114ad565b9150602083013580151581146116c057600080fd5b809150509250929050565b600080600080608085870312156116e157600080fd5b6116ea856114ad565b93506116f8602086016114ad565b925060408501359150606085013567ffffffffffffffff81111561171b57600080fd5b8501601f8101871361172c57600080fd5b61166887823560208401611545565b6000806040838503121561174e57600080fd5b611757836114ad565b9150611765602084016114ad565b90509250929050565b600181811c9082168061178257607f821691505b6020821081036117a257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b601f82111561048957600081815260208120601f850160051c8101602086101561181d5750805b601f850160051c820191505b8181101561183c57828155600101611829565b505050505050565b815167ffffffffffffffff81111561185e5761185e61152f565b6118728161186c845461176e565b846117f6565b602080601f8311600181146118a7576000841561188f5750858301515b600019600386901b1c1916600185901b17855561183c565b600085815260208120601f198616915b828110156118d6578886015182559484019460019091019084016118b7565b50858210156118f45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b60006001820161192c5761192c611904565b5060010190565b60018060a01b0384168152600060208481840152606060408401526000845461195b8161176e565b806060870152608060018084166000811461197d5760018114611997576119c5565b60ff1985168984015283151560051b8901830195506119c5565b896000528660002060005b858110156119bd5781548b82018601529083019088016119a2565b8a0184019650505b50939a9950505050505050505050565b600083516119e7818460208801611431565b8351908301906119fb818360208801611431565b01949350505050565b818103818111156102b5576102b5611904565b808201808211156102b5576102b5611904565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611afa90830184611455565b9695505050505050565b600060208284031215611b1657600080fd5b8151611040816113fe565b634e487b7160e01b600052601260045260246000fd5b600082611b4657611b46611b21565b500490565b600082611b5a57611b5a611b21565b500690565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d16bb6aff2f2b793d1af32b65465db5bd9e4a26159d00e1f31a074311ca5fcd064736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/ReBakedDAO.sol:ReBakedDAO": {"srcmap": "860:19735:38:-:0;;;;;;;;;;;;;;;;;;;", "srcmap-runtime": "860:19735:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11612:488;;;;;;:::i;:::-;;:::i;:::-;;7662:1153;;;;;;:::i;:::-;;:::i;10697:733::-;;;;;;:::i;:::-;;:::i;15363:164::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;3476:13:50;;3458:32;;3546:4;3534:17;;;3528:24;3506:20;;;3499:54;3609:4;3597:17;;;3591:24;3569:20;;;3562:54;3672:4;3660:17;;;3654:24;3632:20;;;3625:54;3735:4;3723:17;;;3717:24;3695:20;;;3688:54;3798:4;3786:17;;;3780:24;3758:20;;;3751:54;3861:4;3849:17;;;3843:24;3821:20;;;3814:54;3924:4;3912:17;;;3906:24;3884:20;;;3877:54;3950:6;3998:15;;;3992:22;3972:18;;;3965:50;4034:6;4082:15;;;4076:22;4056:18;;;4049:50;4118:6;4166:15;;;4160:22;4140:18;;;4133:50;4202:6;4250:15;;;4244:22;4224:18;;;4217:50;4286:6;4334:15;;;4328:22;4308:18;;;4301:50;4370:6;4418:15;;;4412:22;4392:18;;;4385:50;4454:6;4502:15;;;4496:22;4476:18;;;4469:50;4538:6;4579:15;;;4573:22;3235:13;3228:21;4634:18;;;3216:34;;;;3445:3;3430:19;;3261:1398;15363:164:38;;;;;;;;15724:245;;;;;;:::i;:::-;;:::i;:::-;;;;;;5143:4:50;5185:3;5174:9;5170:19;5162:27;;5222:6;5216:13;5205:9;5198:32;5286:4;5278:6;5274:17;5268:24;5261:4;5250:9;5246:20;5239:54;5349:4;5341:6;5337:17;5331:24;5324:4;5313:9;5309:20;5302:54;5412:4;5404:6;5400:17;5394:24;5387:4;5376:9;5372:20;5365:54;5475:4;5467:6;5463:17;5457:24;5450:4;5439:9;5435:20;5428:54;5538:4;5530:6;5526:17;5520:24;5513:4;5502:9;5498:20;5491:54;5615:4;5607:6;5603:17;5597:24;5590:32;5583:40;5576:4;5565:9;5561:20;5554:70;4991:639;;;;;15090:130:38;;;;;;:::i;:::-;;:::i;:::-;;;;;;6077:13:50;;-1:-1:-1;;;;;6073:22:50;;;6055:41;;6156:4;6144:17;;;6138:24;6134:33;;;6112:20;;;6105:63;6224:4;6212:17;;;6206:24;6184:20;;;6177:54;6287:4;6275:17;;;6269:24;6247:20;;;6240:54;6350:4;6338:17;;;6332:24;6310:20;;;6303:54;6035:3;6401:17;;;6395:24;6373:20;;;6366:54;6476:4;6464:17;;;6458:24;6436:20;;;6429:54;6539:4;6527:17;;;6521:24;6499:20;;;6492:54;6565:6;6613:15;;;6607:22;6587:18;;;6580:50;;;;6004:3;5989:19;;5820:816;5886:1462:38;;;;;;:::i;:::-;;:::i;13350:533::-;;;;;;:::i;:::-;;:::i;16166:328::-;;;;;;:::i;:::-;16312:7;16376:28;;;:16;:28;;;;;;;;:40;;;;;;;;;-1:-1:-1;;;;;16376:55:38;;;;;;;;;16450:16;;16468:18;;;;;16450:16;;16166:328;;;;;8811:25:50;;;8867:2;8852:18;;8845:34;;;;8784:18;16166:328:38;8637:248:50;16679:225:38;;;;;;:::i;:::-;;:::i;:::-;;;;9106:13:50;;9088:32;;9176:4;9164:17;;;9158:24;9136:20;;;9129:54;9241:17;;;9235:24;9228:32;9221:40;9199:20;;;9192:70;9076:2;9061:18;16679:225:38;8890:378:50;1293:23:38;;;;;-1:-1:-1;;;;;1293:23:38;;;;;;-1:-1:-1;;;;;9437:32:50;;;9419:51;;9407:2;9392:18;1293:23:38;9273:203:50;2071:101:0;;;:::i;13889:1059:38:-;;;;;;:::i;:::-;;:::i;17085:425::-;;;;;;:::i;:::-;;:::i;:::-;;;10364:25:50;;;10352:2;10337:18;17085:425:38;10218:177:50;2930:263:38;;;;;;:::i;:::-;;:::i;3915:225::-;;;;;;:::i;:::-;;:::i;1441:85:0:-;1513:6;;-1:-1:-1;;;;;1513:6:0;1441:85;;4499:1044:38;;;;;;:::i;:::-;;:::i;12904:222::-;;;;;;:::i;:::-;;:::i;2525:227::-;;;;;;:::i;:::-;;:::i;9881:464::-;;;;;;:::i;:::-;;:::i;1217:43::-;;1257:3;1217:43;;3434:354;;;;;;:::i;:::-;;:::i;9082:510::-;;;;;;:::i;:::-;;:::i;2321:198:0:-;;;;;;:::i;:::-;;:::i;11612:488:38:-;11700:24;;;;:12;:24;;;;;;;;:36;;;;;;;;929:10:12;11700:50:38;;;;;;;;;;11699:51;11691:94;;;;-1:-1:-1;;;11691:94:38;;12144:2:50;11691:94:38;;;12126:21:50;12183:2;12163:18;;;12156:30;12222:32;12202:18;;;12195:60;12272:18;;11691:94:38;;;;;;;;;11796:33;11832:28;;;:16;:28;;;;;;;;:40;;;;;;;;929:10:12;11832:54:38;;;;;;;11896:34;11832:54;11896:32;:34::i;:::-;12003:16;;11996:5;11940:23;;;:11;:23;;;;;;;;:35;;;;;;;;:80;;:35;;11996:5;11940:55;:80::i;:::-;12036:57;;929:10:12;9419:51:50;;12068:10:38;;12056;;12036:57;;9407:2:50;9392:18;12036:57:38;;;;;;;;11681:419;11612:488;;:::o;7662:1153::-;2295:23;;;;:11;:23;;;;;:33;7875:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;7897:23:::1;7923::::0;;;:11:::1;:23;::::0;;;;;;;:35;;;;;;;;8001:26:::1;::::0;::::1;::::0;7976:21;;:51:::1;7968:92;;;::::0;-1:-1:-1;;;7968:92:38;;12863:2:50;7968:92:38::1;::::0;::::1;12845:21:50::0;12902:2;12882:18;;;12875:30;12941;12921:18;;;12914:58;12989:18;;7968:92:38::1;12661:352:50::0;7968:92:38::1;8099:7;:22;;;8078:10;:17;:43;8070:80;;;::::0;-1:-1:-1;;;8070:80:38;;13220:2:50;8070:80:38::1;::::0;::::1;13202:21:50::0;13259:2;13239:18;;;13232:30;13298:26;13278:18;;;13271:54;13342:18;;8070:80:38::1;13018:348:50::0;8070:80:38::1;8161:24;:7;:22;:24::i;:::-;8200:12;8196:280;;;8233:9;8228:121;8252:14;:21;8248:1;:25;8228:121;;;8280:69;8304:10;8316;8328:14;8343:1;8328:17;;;;;;;;:::i;:::-;;;;;;;8347:1;8280:23;:69::i;:::-;8275:3:::0;::::1;::::0;::::1;:::i;:::-;;;;8228:121;;;;8368:9;8363:102;8387:10;:17;8383:1;:21;8363:102;;;8411:54;8427:10;8439;8451;8462:1;8451:13;;;;;;;;:::i;:::-;;;;;;;8411:15;:54::i;:::-;8406:3:::0;::::1;::::0;::::1;:::i;:::-;;;;8363:102;;;;8196:280;8556:13;::::0;::::1;::::0;8534:18:::1;::::0;::::1;::::0;8517:14;;8486:27:::1;::::0;8556:13;8517:35:::1;::::0;::::1;:::i;:::-;8516:53;;;;:::i;:::-;8486:83;;8629:7;:27;;;8603:7;:23;;;:53;;;;:::i;:::-;8579:78;::::0;;::::1;:::i;:::-;8667:23;::::0;;;:11:::1;:23;::::0;;;;8579:78;;-1:-1:-1;8667:65:38::1;::::0;8579:78;8667:44:::1;:65::i;:::-;8788:19;8776:10;8764;8748:60;;;;;;;;;;7887:928;;7662:1153:::0;;;;;;:::o;10697:733::-;2295:23;;;;:11;:23;;;;;:33;10869:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;10900:24:::1;::::0;;;:12:::1;:24;::::0;;;;;;;:36;;;;;;;;-1:-1:-1;;;;;10900:51:38;::::1;::::0;;;;;;;;::::1;;10899:52;10891:95;;;::::0;-1:-1:-1;;;10891:95:38;;12144:2:50;10891:95:38::1;::::0;::::1;12126:21:50::0;12183:2;12163:18;;;12156:30;12222:32;12202:18;;;12195:60;12272:18;;10891:95:38::1;11942:354:50::0;10891:95:38::1;10997:33;11033:28:::0;;;:16:::1;:28;::::0;;;;;;;:40;;;;;;;;-1:-1:-1;;;;;11033:55:38;::::1;::::0;;;;;;;11098:109;::::1;;;11131:65;11155:10;11167;11179:13;11194:1;11131:23;:65::i;:::-;11217:34;:12;:32;:34::i;:::-;11332:16:::0;;::::1;11261:23:::0;;;:11:::1;:23;::::0;;;;;;;:35;;;;;;;;:88:::1;::::0;11317:13;;11261:55:::1;:88::i;:::-;11365:58;::::0;-1:-1:-1;;;;;9437:32:50;;9419:51;;11397:10:38;;11385;;11365:58:::1;::::0;9407:2:50;9392:18;11365:58:38::1;;;;;;;;10881:549;10697:733:::0;;;;;:::o;15363:164::-;15450:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15450:14:38;-1:-1:-1;15484:23:38;;;;:11;:23;;;;;;;;:35;;;;;;;;;15476:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15363:164;;;;;:::o;15724:245::-;15869:19;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15869:19:38;-1:-1:-1;15907:28:38;;;;:16;:28;;;;;;;;:40;;;;;;;;-1:-1:-1;;;;;15907:55:38;;;;;;;;;;15900:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15724:245;;;;;;:::o;15090:130::-;15157:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15157:14:38;-1:-1:-1;15190:23:38;;;;:11;:23;;;;;;;;;15183:30;;;;;;;;;-1:-1:-1;;;;;15183:30:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15090:130::o;5886:1462::-;2295:23;;;;:11;:23;;;;;:33;6106:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;6128:23:::1;6154::::0;;;:11:::1;:23;::::0;;;;;;;:35;;;;;;;;6232:26:::1;::::0;::::1;::::0;6207:21;;:51:::1;6199:90;;;::::0;-1:-1:-1;;;6199:90:38;;14240:2:50;6199:90:38::1;::::0;::::1;14222:21:50::0;14279:2;14259:18;;;14252:30;14318:28;14298:18;;;14291:56;14364:18;;6199:90:38::1;14038:350:50::0;6199:90:38::1;6332:7;:14;6307;:21;:39;6299:75;;;::::0;-1:-1:-1;;;6299:75:38;;14595:2:50;6299:75:38::1;::::0;::::1;14577:21:50::0;14634:2;14614:18;;;14607:30;14673:25;14653:18;;;14646:53;14716:18;;6299:75:38::1;14393:347:50::0;6299:75:38::1;6413:7;:22;;;6392:10;:17;:43;6384:78;;;::::0;-1:-1:-1;;;6384:78:38;;14947:2:50;6384:78:38::1;::::0;::::1;14929:21:50::0;14986:2;14966:18;;;14959:30;-1:-1:-1;;;15005:18:50;;;14998:52;15067:18;;6384:78:38::1;14745:346:50::0;6384:78:38::1;6473:19;6495:24;:7;:22;:24::i;:::-;6529:23;::::0;;;:11:::1;:23;::::0;;;;6473:46;;-1:-1:-1;6529:51:38::1;::::0;6473:46;6529:38:::1;:51::i;:::-;6611:1;6595:7;:13;;;:17;:46;;;;;6640:1;6616:14;:21;:25;6595:46;6591:381;;;6657:25;6705:9:::0;6700:173:::1;6724:7;:14;6720:1;:18;6700:173;;;6784:1;6771:7;6779:1;6771:10;;;;;;;;:::i;:::-;;;;;;;:14;6763:46;;;::::0;-1:-1:-1;;;6763:46:38;;15298:2:50;6763:46:38::1;::::0;::::1;15280:21:50::0;15337:2;15317:18;;;15310:30;-1:-1:-1;;;15356:18:50;;;15349:49;15415:18;;6763:46:38::1;15096:343:50::0;6763:46:38::1;6848:7;6856:1;6848:10;;;;;;;;:::i;:::-;;;;;;;6827:31;;;;;:::i;:::-;::::0;-1:-1:-1;6740:3:38;::::1;::::0;::::1;:::i;:::-;;;;6700:173;;;;1257:3;6894:17;:34;6886:75;;;::::0;-1:-1:-1;;;6886:75:38;;15646:2:50;6886:75:38::1;::::0;::::1;15628:21:50::0;15685:2;15665:18;;;15658:30;15724;15704:18;;;15697:58;15772:18;;6886:75:38::1;15444:352:50::0;6886:75:38::1;6643:329;6591:381;6987:9;6982:155;7006:14;:21;7002:1;:25;6982:155;;;7048:78;7072:10;7084;7096:14;7111:1;7096:17;;;;;;;;:::i;:::-;;;;;;;7115:7;7123:1;7115:10;;;;;;;;:::i;:::-;;;;;;;7048:23;:78::i;:::-;7029:3:::0;::::1;::::0;::::1;:::i;:::-;;;;6982:155;;;;7152:9;7147:127;7171:10;:17;7167:1;:21;7147:127;;;7209:54;7225:10;7237;7249;7260:1;7249:13;;;;;;;;:::i;7209:54::-;7190:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7147:127;;;;7329:11;7317:10;7305;7289:52;;;;;;;;;;6118:1230;;5886:1462:::0;;;;;;:::o;13350:533::-;2295:23;;;;:11;:23;;;;;:33;13497:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;13547:1:::1;13527:10;:17;:21;13519:56;;;::::0;-1:-1:-1;;;13519:56:38;;16003:2:50;13519:56:38::1;::::0;::::1;15985:21:50::0;16042:2;16022:18;;;16015:30;-1:-1:-1;;;16061:18:50;;;16054:52;16123:18;;13519:56:38::1;15801:346:50::0;13519:56:38::1;13591:9;13586:142;13610:10;:17;13606:1;:21;13586:142;;;13648:24;::::0;;;:12:::1;:24;::::0;;;;;;;:36;;;;;;;;13685:13;;13648:69:::1;::::0;:24;13685:10;;13696:1;;13685:13;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13648:51:38::1;-1:-1:-1::0;;;;;13648:51:38::1;;;;;;;;;;;;:67;:69::i;:::-;13629:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13586:142;;;-1:-1:-1::0;13790:17:38;;13737:23:::1;::::0;;;:11:::1;:23;::::0;;;;;;;:35;;;;;;;;:71:::1;::::0;:52:::1;:71::i;:::-;13853:10;13841;13824:52;13865:10;13824:52;;;;;;:::i;:::-;;;;;;;;13350:533:::0;;;;:::o;16679:225::-;16816:15;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;16816:15:38;-1:-1:-1;16850:24:38;;;;:12;:24;;;;;;;;:36;;;;;;;;;-1:-1:-1;;;;;16850:47:38;;;;;;;;;;;;;16843:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16679:225::o;2071:101:0:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;13889:1059:38:-;2295:23;;;;:11;:23;;;;;:33;14078:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;14130:1:::1;14108:12;:19;:23;:51;;;;14158:1;14135:13;:20;:24;14108:51;14100:87;;;::::0;-1:-1:-1;;;14100:87:38;;17017:2:50;14100:87:38::1;::::0;::::1;16999:21:50::0;17056:2;17036:18;;;17029:30;17095:25;17075:18;;;17068:53;17138:18;;14100:87:38::1;16815:347:50::0;14100:87:38::1;14202:19:::0;;:23;14198:360:::1;;14246:9;14241:151;14265:12;:19;14261:1;:23;14241:151;;;14309:24;::::0;;;:12:::1;:24;::::0;;;;;;;:36;;;;;;;;14346:15;;14309:68:::1;::::0;:24;14346:12;;14359:1;;14346:15;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;14309:53:38::1;-1:-1:-1::0;;;;;14309:53:38::1;;;;;;;;;;;;:66;:68::i;:::-;14286:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14241:151;;;-1:-1:-1::0;14455:19:38;;14405:23:::1;::::0;;;:11:::1;:23;::::0;;;;;;;:35;;;;;;;;:70:::1;::::0;:49:::1;:70::i;:::-;14522:10;14510;14495:52;14534:12;14495:52;;;;;;:::i;:::-;;;;;;;;14198:360;14572:20:::0;;:24;14568:374:::1;;14617:9;14612:156;14636:13;:20;14632:1;:24;14612:156;;;14681:24;::::0;;;:12:::1;:24;::::0;;;;;;;:36;;;;;;;;14718:16;;14681:72:::1;::::0;:24;14718:13;;14732:1;;14718:16;::::1;;;;;:::i;14681:72::-;14658:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14612:156;;;-1:-1:-1::0;14835:20:38;;14782:23:::1;::::0;;;:11:::1;:23;::::0;;;;;;;:35;;;;;;;;:74:::1;::::0;:52:::1;:74::i;:::-;14905:10;14893;14876:55;14917:13;14876:55;;;;;;:::i;:::-;;;;;;;;14568:374;13889:1059:::0;;;;;:::o;17085:425::-;17219:7;17266:24;;;:12;:24;;;;;;;;:36;;;;;;;;-1:-1:-1;;;;;17266:47:38;;;;;;;;;17327:17;;;;:21;;;:50;;-1:-1:-1;17352:20:38;;:25;17327:50;:72;;;-1:-1:-1;17381:18:38;;;;;;17327:72;17323:111;;;17422:1;17415:8;;;;;17323:111;17450:23;;;;:11;:23;;;;;;;;:35;;;;;;;;:53;;:51;:53::i;:::-;17443:60;17085:425;-1:-1:-1;;;;;17085:425:38:o;2930:263::-;1334:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;3010:23:38;::::1;3002:60;;;::::0;-1:-1:-1;;;3002:60:38;;17369:2:50;3002:60:38::1;::::0;::::1;17351:21:50::0;17408:2;17388:18;;;17381:30;-1:-1:-1;;;17427:18:50;;;17420:54;17491:18;;3002:60:38::1;17167:348:50::0;3002:60:38::1;3094:8;::::0;;-1:-1:-1;;;;;3112:20:38;;::::1;-1:-1:-1::0;;;;;;3112:20:38;::::1;::::0;::::1;::::0;;;3148:38:::1;::::0;;3094:8;;;::::1;17732:34:50::0;;;17797:2;17782:18;;17775:43;;;;3148:38:38::1;::::0;17667:18:50;3148:38:38::1;;;;;;;;2992:201;2930:263:::0;:::o;3915:225::-;2295:23;;;;:11;:23;;;;;:33;3981:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;1815:1:2::1;2569:7;;:19:::0;2561:63:::1;;;;-1:-1:-1::0;;;2561:63:2::1;;;;;;;:::i;:::-;1815:1;2699:7;:18:::0;4016:19:38::2;4038:23:::0;;;:11:::2;:23;::::0;;;;:40:::2;::::0;:38:::2;:40::i;:::-;4016:62;;4109:10;4093:40;4121:11;4093:40;;;;10364:25:50::0;;10352:2;10337:18;;10218:177;4093:40:38::2;;;;;;;;-1:-1:-1::0;;1772:1:2::1;2872:7;:22:::0;-1:-1:-1;3915:225:38:o;4499:1044::-;2295:23;;;;:11;:23;;;;;:33;4735:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;4755:7:::1;2097:1;2087:7;:11;2079:35;;;;-1:-1:-1::0;;;2079:35:38::1;;;;;;;:::i;:::-;1815:1:2::2;2569:7;;:19:::0;2561:63:::2;;;;-1:-1:-1::0;;;2561:63:2::2;;;;;;;:::i;:::-;1815:1;2699:7;:18:::0;4787:23:38::3;4813::::0;;;:11:::3;:23;::::0;;;;;4881:15;4862:16:::3;4872:6:::0;4862:7;:16:::3;:::i;:::-;:34;;;;:::i;:::-;4846:50:::0;-1:-1:-1;4906:37:38::3;:7:::0;4846:50;4906:30:::3;:37::i;:::-;4953:18;4974:33;4993:10;5005:1;4974:18;:33::i;:::-;5017:23;5043::::0;;;:11:::3;:23;::::0;;;;;;;:35;;;;;;;;4953:54;;-1:-1:-1;5088:77:38::3;5043:35:::0;5111:7;5120:15;5137:6;5145:19;5088:22:::3;:77::i;:::-;5175:92;929:10:12::0;5239:8:38::3;::::0;-1:-1:-1;;;;;5239:8:38::3;5263:3;5250:9;:5:::0;5258:1:::3;5250:9;:::i;:::-;5249:17;;;;:::i;:::-;5193:13;::::0;::::3;::::0;-1:-1:-1;;;;;5193:13:38::3;::::0;5175:92;;:49:::3;:92::i;:::-;5282:17:::0;;:21;5278:171:::3;;5345:1;5327:15;:19;5319:56;;;::::0;-1:-1:-1;;;5319:56:38;;19126:2:50;5319:56:38::3;::::0;::::3;19108:21:50::0;19165:2;19145:18;;;19138:30;19204:26;19184:18;;;19177:54;19248:18;;5319:56:38::3;18924:348:50::0;5319:56:38::3;5389:49;5403:10;5415;5427;5389:13;:49::i;:::-;5464:72;::::0;;19479:25:50;;;19535:2;19520:18;;19513:34;;;19563:18;;;19556:34;;;5491:10:38;;5479;;5464:72:::3;::::0;19467:2:50;19452:18;5464:72:38::3;;;;;;;-1:-1:-1::0;;1772:1:2::2;2872:7;:22:::0;-1:-1:-1;;;;;;;;;;4499:1044:38:o;12904:222::-;2295:23;;;;:11;:23;;;;;:33;13048:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;13070:49:::1;13084:10;13096;13108;13070:13;:49::i;:::-;12904:222:::0;;;;:::o;2525:227::-;3111:19:1;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:1;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:1;1476:19:11;:23;;;3219:66:1;;-1:-1:-1;3268:12:1;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:1;;19803:2:50;3157:201:1;;;19785:21:50;19842:2;19822:18;;;19815:30;19881:34;19861:18;;;19854:62;-1:-1:-1;;;19932:18:50;;;19925:44;19986:19;;3157:201:1;19601:410:50;3157:201:1;3368:12;:16;;-1:-1:-1;;3368:16:1;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:1;;;;;3394:65;2593:16:38::1;:14;:16::i;:::-;2619:24;:22;:24::i;:::-;-1:-1:-1::0;;;;;2662:23:38;::::1;2654:60;;;::::0;-1:-1:-1;;;2654:60:38;;17369:2:50;2654:60:38::1;::::0;::::1;17351:21:50::0;17408:2;17388:18;;;17381:30;-1:-1:-1;;;17427:18:50;;;17420:54;17491:18;;2654:60:38::1;17167:348:50::0;2654:60:38::1;2725:8;:20:::0;;-1:-1:-1;;;;;;2725:20:38::1;-1:-1:-1::0;;;;;2725:20:38;::::1;;::::0;;3479:99:1;;;;3529:5;3513:21;;-1:-1:-1;;3513:21:1;;;3553:14;;-1:-1:-1;20168:36:50;;3553:14:1;;20156:2:50;20141:18;3553:14:1;20016:194:50;3479:99:1;3101:483;2525:227:38;:::o;9881:464::-;2295:23;;;;:11;:23;;;;;:33;10026:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;10048:24:::1;::::0;;;:12:::1;:24;::::0;;;;;;;:36;;;;;;;;-1:-1:-1;;;;;10048:51:38;::::1;::::0;;;;;;;;;:58;;-1:-1:-1;;10048:58:38::1;10102:4;10048:58;::::0;;10117:28;;;:16:::1;:28:::0;;;;;:40;;;;;;;;:55;;;;;;;;:78:::1;::::0;:76:::1;:78::i;:::-;10205:23;::::0;;;:11:::1;:23;::::0;;;;;;;:35;;;;;;;;:58:::1;::::0;:56:::1;:58::i;:::-;10279:59;::::0;-1:-1:-1;;;;;9437:32:50;;9419:51;;10312:10:38;;10300;;10279:59:::1;::::0;9407:2:50;9392:18;10279:59:38::1;9273:203:50::0;3434:354:38;3507:7;2097:1;2087:7;:11;2079:35;;;;-1:-1:-1;;;2079:35:38;;;;;;;:::i;:::-;1815:1:2::1;2569:7;;:19:::0;2561:63:::1;;;;-1:-1:-1::0;;;2561:63:2::1;;;;;;;:::i;:::-;1815:1;2699:7;:18:::0;-1:-1:-1;;;;;3547:20:38;::::2;3539:54;;;::::0;-1:-1:-1;;;3539:54:38;;20417:2:50;3539:54:38::2;::::0;::::2;20399:21:50::0;20456:2;20436:18;;;20429:30;-1:-1:-1;;;20475:18:50;;;20468:51;20536:18;;3539:54:38::2;20215:345:50::0;3539:54:38::2;3603:18;3624:20;:18;:20::i;:::-;3654:23;::::0;;;:11:::2;:23;::::0;;;;3603:41;;-1:-1:-1;3654:55:38::2;::::0;3693:6;3701:7;3654:38:::2;:55::i;:::-;3739:10:::0;3724:57:::2;929:10:12::0;3724:57:38::2;::::0;;-1:-1:-1;;;;;20823:15:50;;;20805:34;;20875:15;;;20870:2;20855:18;;20848:43;20907:18;;20900:34;;;20755:2;20740:18;3724:57:38::2;;;;;;;-1:-1:-1::0;;1772:1:2::1;2872:7;:22:::0;-1:-1:-1;;3434:354:38:o;9082:510::-;2295:23;;;;:11;:23;;;;;:33;9245:10;;-1:-1:-1;;;;;2295:33:38;929:10:12;2295:49:38;2287:93;;;;-1:-1:-1;;;2287:93:38;;;;;;;:::i;:::-;9265:4:::1;2097:1;2087:7;:11;2079:35;;;;-1:-1:-1::0;;;2079:35:38::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9289:27:38;::::2;9281:70;;;::::0;-1:-1:-1;;;9281:70:38;;21147:2:50;9281:70:38::2;::::0;::::2;21129:21:50::0;21186:2;21166:18;;;21159:30;21225:32;21205:18;;;21198:60;21275:18;;9281:70:38::2;20945:354:50::0;9281:70:38::2;9362:28;::::0;;;:16:::2;:28;::::0;;;;;;;:40;;;;;;;;-1:-1:-1;;;;;9362:55:38;::::2;::::0;;;;;;;:78:::2;::::0;9435:4;9362:72:::2;:78::i;:::-;9450:23;::::0;;;:11:::2;:23;::::0;;;;;;;:35;;;;;;;;:57:::2;::::0;9502:4;9450:51:::2;:57::i;:::-;9523:62;::::0;;-1:-1:-1;;;;;21496:32:50;;21478:51;;21560:2;21545:18;;21538:34;;;9553:10:38;;9541;;9523:62:::2;::::0;21451:18:50;9523:62:38::2;21304:274:50::0;2321:198:0;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:0;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:0;;21785:2:50;2401:73:0::1;::::0;::::1;21767:21:50::0;21824:2;21804:18;;;21797:30;21863:34;21843:18;;;21836:62;-1:-1:-1;;;21914:18:50;;;21907:36;21960:19;;2401:73:0::1;21583:402:50::0;2401:73:0::1;2484:28;2503:8;2484:18;:28::i;:::-;2321:198:::0;:::o;1402:159:44:-;1499:13;312:1;284:13;:25;;;:29;:57;;;;-1:-1:-1;318:23:44;;;;;;317:24;284:57;276:90;;;;-1:-1:-1;;;276:90:44;;;;;;;:::i;:::-;-1:-1:-1;1524:23:44::1;;:30:::0;;-1:-1:-1;;1524:30:44::1;1550:4;1524:30;::::0;;1402:159::o;3842:248:46:-;351:17;;;;3953:8;;351:17;;343:45;;;;-1:-1:-1;;;343:45:46;;;;;;;:::i;:::-;3978:8:::1;3973:72;;4030:4;4002:8;:24;;;:32;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;3973:72:46::1;4054:27;::::0;::::1;:29:::0;;;:27:::1;:29;::::0;::::1;:::i;:::-;;;;;;3842:248:::0;;;;:::o;1406:178::-;351:17;;;;1483:8;;351:17;;343:45;;;;-1:-1:-1;;;343:45:46;;;;;;;:::i;:::-;-1:-1:-1;1527:15:46::1;1503:21;::::0;::::1;:39:::0;1552:17:::1;;:25:::0;;-1:-1:-1;;1552:25:46::1;::::0;;1406:178::o;17830:980:38:-;17998:33;18034:28;;;:16;:28;;;;;;;;:40;;;;;;;;-1:-1:-1;;;;;18034:55:38;;;;;;;;;18125:23;;;:11;:23;;;;;:35;;;;;;;;18199:13;;;;18034:55;;18125:35;;18199:17;;;;:31;;;18229:1;18220:6;:10;18199:31;18195:258;;;18294:26;;;;18256:30;;;;:34;;18289:1;18256:34;:::i;:::-;:64;18255:187;;1257:3;18419:6;18403:7;:13;;;:22;;;;:::i;:::-;18402:40;;;;:::i;:::-;18255:187;;;18361:7;:17;;;18345:7;:13;;;:33;;;;:::i;:::-;18246:196;;18195:258;18463:28;;;;:16;:28;;;;;;;;:40;;;;;;;;-1:-1:-1;;;;;18463:55:38;;;;;;;;;:74;;18530:6;18463:66;:74::i;:::-;18594:16;;;18547:23;;;:11;:23;;;;;;;;:35;;;;;;;;:72;;18612:6;18547:46;:72::i;:::-;18629:70;18658:13;18692:6;18673:12;:16;;;:25;;;;:::i;:::-;18629:23;;;;:11;:23;;;;;;:70;:28;:70::i;:::-;18778:16;;18715:88;;;-1:-1:-1;;;;;23044:32:50;;23026:51;;23108:2;23093:18;;23086:34;;;;23136:18;;23129:34;;;18751:10:38;;18739;;18715:88;;23014:2:50;22999:18;18715:88:38;;;;;;;17988:822;;;17830:980;;;;:::o;19024:489::-;19156:24;;;;:12;:24;;;;;;;;:36;;;;;;;;-1:-1:-1;;;;;19156:47:38;;;;;;;;;:65;;:63;:65::i;:::-;19232:15;19250:23;;;:11;:23;;;;;;;;:35;;;;;;;;:53;;:51;:53::i;:::-;19313:23;;;;:11;:23;;;;;;;;:35;;;;;;;;19232:71;;-1:-1:-1;19313:60:38;;19232:71;19313:51;:60::i;:::-;19383:23;;;;:11;:23;;;;;:48;;19412:9;19423:7;19383:28;:48::i;:::-;19447:59;;;-1:-1:-1;;;;;21496:32:50;;21478:51;;21560:2;21545:18;;21538:34;;;19475:10:38;;19463;;19447:59;;21451:18:50;19447:59:38;21304:274:50;2577:192:47;2709:19;2681:8;:24;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;2738:22:47;;;:24;;;:22;:24;;;:::i;:::-;;;;;;2577:192;;:::o;4337:575:46:-;351:17;;;;4433:19;;4414:8;;351:17;;343:45;;;;-1:-1:-1;;;343:45:46;;;;;;;:::i;:::-;4503:8:::1;:30;;;4472:8;:27;;;:61;4464:103;;;::::0;-1:-1:-1;;;4464:103:46;;23376:2:50;4464:103:46::1;::::0;::::1;23358:21:50::0;23415:2;23395:18;;;23388:30;23454:31;23434:18;;;23427:59;23503:18;;4464:103:46::1;23174:353:50::0;4464:103:46::1;4609:24;::::0;::::1;::::0;4591:15;;:42:::1;::::0;4609:24;4591:42:::1;:::i;:::-;4577:56;;4647:8;:23;;;4674:1;4647:28:::0;4643:73:::1;;4692:24;::::0;::::1;::::0;4677:39:::1;::::0;;::::1;:::i;:::-;;;4643:73;4730:8;:27;;;4761:1;4730:32:::0;4726:67:::1;;4779:14;::::0;::::1;::::0;4764:29:::1;::::0;;::::1;:::i;:::-;;;4726:67;-1:-1:-1::0;4827:15:46::1;4803:21;::::0;::::1;:39:::0;4852:17:::1;::::0;;::::1;:25:::0;;-1:-1:-1;;4852:25:46::1;::::0;;4337:575;:::o;3036:199:47:-;3130:15;;3126:60;;3175:11;3147:8;:24;;;:39;;;;;;;:::i;:::-;;;;-1:-1:-1;;3126:60:47;3196:30;;;:32;;;:30;:32;;;:::i;744:135:45:-;261:21;;825:9;;261:25;;;;:49;;-1:-1:-1;291:19:45;;;;;;290:20;261:49;253:78;;;;-1:-1:-1;;;253:78:45;;23734:2:50;253:78:45;;;23716:21:50;23773:2;23753:18;;;23746:30;-1:-1:-1;;;23792:18:50;;;23785:46;23848:18;;253:78:45;23532:340:50;253:78:45;-1:-1:-1;846:19:45::1;;:26:::0;;-1:-1:-1;;846:26:45::1;868:4;846:26;::::0;;744:135::o;2715:155:46:-;351:17;;;;2810:8;;351:17;;343:45;;;;-1:-1:-1;;;343:45:46;;;;;;;:::i;:::-;2857:6:::1;2830:8;:23;;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;2715:155:46:o;1599:130:0:-;1513:6;;-1:-1:-1;;;;;1513:6:0;929:10:12;1662:23:0;1654:68;;;;-1:-1:-1;;;1654:68:0;;24079:2:50;1654:68:0;;;24061:21:50;;;24098:18;;;24091:30;24157:34;24137:18;;;24130:62;24209:18;;1654:68:0;23877:356:50;2673:187:0;2765:6;;;-1:-1:-1;;;;;2781:17:0;;;-1:-1:-1;;;;;;2781:17:0;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;451:186:45:-;528:21;;:26;520:61;;;;-1:-1:-1;;;520:61:45;;24440:2:50;520:61:45;;;24422:21:50;24479:2;24459:18;;;24452:30;-1:-1:-1;;;24498:18:50;;;24491:52;24560:18;;520:61:45;24238:346:50;520:61:45;615:15;591:39;;451:186::o;2062:245:46:-;351:17;;;;2154:8;;351:17;;343:45;;;;-1:-1:-1;;;343:45:46;;;;;;;:::i;:::-;219:2:::1;2208:6;2182:8;:23;;;:32;;;;:::i;:::-;:49;;2174:83;;;::::0;-1:-1:-1;;;2174:83:46;;24791:2:50;2174:83:46::1;::::0;::::1;24773:21:50::0;24830:2;24810:18;;;24803:30;-1:-1:-1;;;24849:18:50;;;24842:51;24910:18;;2174:83:46::1;24589:345:50::0;2174:83:46::1;2294:6;2267:8;:23;;;:33;;;;;;;:::i;5044:370::-:0;5118:7;5137:15;5182:8;:28;;;5155:8;:24;;;:55;;;;:::i;:::-;5137:73;;5279:15;5324:8;:23;;;5297:8;:24;;;:50;;;;:::i;:::-;5279:68;-1:-1:-1;5375:11:46;5279:68;5375:1;:11;:::i;:::-;5365:7;:21;5364:43;;5400:7;5364:43;;;5390:7;5364:43;5357:50;5044:370;-1:-1:-1;;;;5044:370:46:o;1202:545:47:-;1270:7;1297:8;:21;;;1322:1;1297:26;1289:63;;;;-1:-1:-1;;;1289:63:47;;25141:2:50;1289:63:47;;;25123:21:50;25180:2;25160:18;;;25153:30;25219:26;25199:18;;;25192:54;25263:18;;1289:63:47;24939:348:50;1289:63:47;1396:8;:30;;;1370:8;:22;;;:56;1362:93;;;;-1:-1:-1;;;1362:93:47;;25494:2:50;1362:93:47;;;25476:21:50;25533:2;25513:18;;;25506:30;25572:26;25552:18;;;25545:54;25616:18;;1362:93:47;25292:348:50;1362:93:47;1489:15;1465:21;;;:39;1554:24;;;;1536:15;;;;1514:19;;1536:42;;;:::i;:::-;1514:64;-1:-1:-1;1592:15:47;;1588:125;;1670:18;;;1641:14;;;1623:79;;-1:-1:-1;;;;;1641:14:47;;;;1670:18;1690:11;1623:46;:79::i;2012:384::-;2141:21;;;;:26;2133:58;;;;-1:-1:-1;;;2133:58:47;;25847:2:50;2133:58:47;;;25829:21:50;25886:2;25866:18;;;25859:30;-1:-1:-1;;;25905:18:50;;;25898:49;25964:18;;2133:58:47;25645:343:50;2133:58:47;2255:12;2228:8;:24;;;:39;;;;:::i;:::-;2209:8;:15;;;:58;;2201:101;;;;-1:-1:-1;;;2201:101:47;;26195:2:50;2201:101:47;;;26177:21:50;26234:2;26214:18;;;26207:30;26273:32;26253:18;;;26246:60;26323:18;;2201:101:47;25993:354:50;2201:101:47;2340:12;2312:8;:24;;;:40;;;;;;;:::i;:::-;;;;;;;;2388:1;2362:8;:22;;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;2012:384:47:o;20343:250:38:-;20429:18;20472:19;20484:6;20472:11;:19::i;:::-;20509:23;;;;:11;:23;;;;;;;;:35;;;;;;;;:47;;;20459:32;;-1:-1:-1;20509:52:38;20501:85;;;;-1:-1:-1;;;20501:85:38;;26554:2:50;20501:85:38;;;26536:21:50;26593:2;26573:18;;;26566:30;-1:-1:-1;;;26612:18:50;;;26605:50;26672:18;;20501:85:38;26352:344:50;710:587:46;928:19;924:1;:23;:67;;;;;171:2;951:19;:40;;924:67;916:109;;;;-1:-1:-1;;;916:109:46;;26903:2:50;916:109:46;;;26885:21:50;26942:2;26922:18;;;26915:30;26981:31;26961:18;;;26954:59;27030:18;;916:109:46;26701:353:50;916:109:46;1035:25;;;1070:24;;;:46;;;;1126:14;;;:23;1159:27;;;:49;1241:15;1218:20;;;:38;1266:17;;:24;;-1:-1:-1;;1266:24:46;1286:4;1266:24;;;710:587::o;1040:252:5:-;1216:68;;-1:-1:-1;;;;;20823:15:50;;;1216:68:5;;;20805:34:50;20875:15;;20855:18;;;20848:43;20907:18;;;20900:34;;;1189:96:5;;1209:5;;-1:-1:-1;;;1239:27:5;20740:18:50;;1216:68:5;;;;-1:-1:-1;;1216:68:5;;;;;;;;;;;;;;-1:-1:-1;;;;;1216:68:5;-1:-1:-1;;;;;;1216:68:5;;;;;;;;;;1189:19;:96::i;12106:574:38:-;12274:1;12254:10;:17;:21;12246:56;;;;-1:-1:-1;;;12246:56:38;;16003:2:50;12246:56:38;;;15985:21:50;16042:2;16022:18;;;16015:30;-1:-1:-1;;;16061:18:50;;;16054:52;16123:18;;12246:56:38;15801:346:50;12246:56:38;12318:9;12313:217;12337:10;:17;12333:1;:21;12313:217;;;12408:1;-1:-1:-1;;;;;12383:27:38;:10;12394:1;12383:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;12383:27:38;;12375:64;;;;-1:-1:-1;;;12375:64:38;;27261:2:50;12375:64:38;;;27243:21:50;27300:2;27280:18;;;27273:30;27339:26;27319:18;;;27312:54;27383:18;;12375:64:38;27059:348:50;12375:64:38;12453:24;;;;:12;:24;;;;;;;;:36;;;;;;;;12490:13;;12453:66;;:24;12490:10;;12501:1;;12490:13;;;;;;:::i;12453:66::-;12356:3;;;;:::i;:::-;;;;12313:217;;;-1:-1:-1;12589:17:38;;12539:23;;;;:11;:23;;;;;;;;:35;;;;;;;;:68;;:49;:68::i;:::-;12650:10;12638;12623:50;12662:10;12623:50;;;;;;:::i;1003:95:0:-;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1065:26:0::1;:24;:26::i;1853:111:2:-:0;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1923:34:2::1;:32;:34::i;1133:263:44:-:0;1231:13;312:1;284:13;:25;;;:29;:57;;;;-1:-1:-1;318:23:44;;;;;;317:24;284:57;276:90;;;;-1:-1:-1;;;276:90:44;;;;;;;:::i;:::-;1264:29:::1;::::0;::::1;::::0;:34;1256:76:::1;;;::::0;-1:-1:-1;;;1256:76:44;;28026:2:50;1256:76:44::1;::::0;::::1;28008:21:50::0;28065:2;28045:18;;;28038:30;28104:31;28084:18;;;28077:59;28153:18;;1256:76:44::1;27824:353:50::0;1256:76:44::1;-1:-1:-1::0;1374:15:44::1;1342:29;::::0;;::::1;:47:::0;1133:263::o;3554:142:46:-;351:17;;;;3637:8;;351:17;;343:45;;;;-1:-1:-1;;;343:45:46;;;;;;;:::i;:::-;3657:30:::1;::::0;::::1;:32:::0;;;:30:::1;:32;::::0;::::1;:::i;19960:199:38:-:0;20012:18;20055:14;20067:1;20055:11;:14::i;:::-;20087:23;;;;:11;:23;;;;;:35;;;20042:27;;-1:-1:-1;20087:40:38;20079:73;;;;-1:-1:-1;;;20079:73:38;;28384:2:50;20079:73:38;;;28366:21:50;28423:2;28403:18;;;28396:30;-1:-1:-1;;;28442:18:50;;;28435:50;28502:18;;20079:73:38;28182:344:50;20079:73:38;19960:199;:::o;570:391:47:-;702:31;;-1:-1:-1;;;;;;702:31:47;;;723:10;702:31;;;;;;743:14;;:23;;-1:-1:-1;;;;;743:23:47;;;;;;;;776:15;;;:25;;;834:15;811:20;;;:38;860:94;;743:23;931:4;794:7;860:50;:94::i;:::-;570:391;;;:::o;656:327:44:-;759:23;;;;;;;:57;;-1:-1:-1;786:25:44;;;;:30;759:57;751:96;;;;-1:-1:-1;;;751:96:44;;28733:2:50;751:96:44;;;28715:21:50;28772:2;28752:18;;;28745:30;28811:28;28791:18;;;28784:56;28857:18;;751:96:44;28531:350:50;751:96:44;858:24;;892:23;;;:31;;-1:-1:-1;;892:31:44;;;961:15;933:25;;;;:43;656:327::o;3016:409:46:-;351:17;;;;3111:8;;351:17;;343:45;;;;-1:-1:-1;;;343:45:46;;;;;;;:::i;:::-;3185:7:::1;3158:8;:24;;;:34;;;;:::i;:::-;3139:15:::0;;:53:::1;;3131:96;;;::::0;-1:-1:-1;;;3131:96:46;;29088:2:50;3131:96:46::1;::::0;::::1;29070:21:50::0;29127:2;29107:18;;;29100:30;29166:32;29146:18;;;29139:60;29216:18;;3131:96:46::1;28886:354:50::0;3131:96:46::1;3275:8;:27;;;3245:8;:27;;;:57;3237:97;;;::::0;-1:-1:-1;;;3237:97:46;;29447:2:50;3237:97:46::1;::::0;::::1;29429:21:50::0;29486:2;29466:18;;;29459:30;29525:29;29505:18;;;29498:57;29572:18;;3237:97:46::1;29245:351:50::0;3237:97:46::1;3372:7;3344:8;:24;;;:35;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;3389:27:46::1;::::0;::::1;:29:::0;;;:27:::1;:29;::::0;::::1;:::i;:::-;;;;;;3016:409:::0;;;:::o;1709:388:44:-;1813:13;312:1;284:13;:25;;;:29;:57;;;;-1:-1:-1;318:23:44;;;;;;317:24;284:57;276:90;;;;-1:-1:-1;;;276:90:44;;;;;;;:::i;:::-;1846:25:::1;::::0;::::1;::::0;:30;1838:62:::1;;;::::0;-1:-1:-1;;;1838:62:44;;29803:2:50;1838:62:44::1;::::0;::::1;29785:21:50::0;29842:2;29822:18;;;29815:30;-1:-1:-1;;;29861:18:50;;;29854:49;29920:18;;1838:62:44::1;29601:343:50::0;1838:62:44::1;1938:15;1910:25;::::0;::::1;:43:::0;1967:10;;1963:128:::1;;-1:-1:-1::0;1993:19:44::1;::::0;::::1;:28:::0;2065:15:::1;2035:27;::::0;;::::1;:45:::0;1709:388::o;5851:284:46:-;5999:4;5976:8;:19;;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;6017:10:46;;6013:116;;6065:6;6043:8;:18;;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;6085:31:46;;;:33;;;:31;:33;;;:::i;3409:238:47:-;3557:7;3534:8;:19;;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;3592:14:47;;;;3574:66;;-1:-1:-1;;;;;3592:14:47;3621:9;3632:7;3574:46;:66::i;976:216:45:-;261:21;;1057:9;;261:25;;;;:49;;-1:-1:-1;291:19:45;;;;;;290:20;261:49;253:78;;;;-1:-1:-1;;;253:78:45;;23734:2:50;253:78:45;;;23716:21:50;23773:2;23753:18;;;23746:30;-1:-1:-1;;;23792:18:50;;;23785:46;23848:18;;253:78:45;23532:340:50;253:78:45;1086:18:::1;::::0;::::1;::::0;:23;1078:61:::1;;;::::0;-1:-1:-1;;;1078:61:45;;30151:2:50;1078:61:45::1;::::0;::::1;30133:21:50::0;30190:2;30170:18;;;30163:30;30229:27;30209:18;;;30202:55;30274:18;;1078:61:45::1;29949:349:50::0;1078:61:45::1;-1:-1:-1::0;1170:15:45::1;1149:18;::::0;;::::1;:36:::0;976:216::o;5544:133:46:-;5663:7;5631:8;:28;;;:39;;;;;;;:::i;818:216:5:-;968:58;;-1:-1:-1;;;;;21496:32:50;;968:58:5;;;21478:51:50;21545:18;;;21538:34;;;941:86:5;;961:5;;-1:-1:-1;;;991:23:5;21451:18:50;;968:58:5;21304:274:50;19675:170:38;19734:7;929:10:12;19811:16:38;19826:1;19811:12;:16;:::i;:::-;19770:67;;30508:2:50;30504:15;;;;-1:-1:-1;;30500:53:50;19770:67:38;;;30488:66:50;19801:27:38;30570:12:50;;;30563:28;30607:12;;;30600:28;;;30644:12;;19770:67:38;;;;;;;;;;;;19760:78;;;;;;19753:85;;19675:170;;;:::o;3868:717:5:-;4298:23;4324:69;4352:4;4324:69;;;;;;;;;;;;;;;;;4332:5;-1:-1:-1;;;;;4324:27:5;;;:69;;;;;:::i;:::-;4407:17;;4298:95;;-1:-1:-1;4407:21:5;4403:176;;4502:10;4491:30;;;;;;;;;;;;:::i;:::-;4483:85;;;;-1:-1:-1;;;4483:85:5;;31119:2:50;4483:85:5;;;31101:21:50;31158:2;31138:18;;;31131:30;31197:34;31177:18;;;31170:62;-1:-1:-1;;;31248:18:50;;;31241:40;31298:19;;4483:85:5;30917:406:50;1104:111:0;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1176:32:0::1;929:10:12::0;1176:18:0::1;:32::i;1970:109:2:-:0;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1772:1:2::1;2050:7;:22:::0;1970:109::o;3872:223:11:-;4005:12;4036:52;4058:6;4066:4;4072:1;4075:12;4005;-1:-1:-1;;;;;1476:19:11;;;5239:60;;;;-1:-1:-1;;;5239:60:11;;31937:2:50;5239:60:11;;;31919:21:50;31976:2;31956:18;;;31949:30;32015:31;31995:18;;;31988:59;32064:18;;5239:60:11;31735:353:50;5239:60:11;5311:12;5325:23;5352:6;-1:-1:-1;;;;;5352:11:11;5371:5;5378:4;5352:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5310:73;;;;5400:51;5417:7;5426:10;5438:12;5400:16;:51::i;:::-;5393:58;4959:499;-1:-1:-1;;;;;;;4959:499:11:o;6622:742::-;6768:12;6796:7;6792:566;;;-1:-1:-1;6826:10:11;6819:17;;6792:566;6937:17;;:21;6933:415;;7181:10;7175:17;7241:15;7228:10;7224:2;7220:19;7213:44;6933:415;7320:12;7313:20;;-1:-1:-1;;;7313:20:11;;;;;;;;:::i;14:248:50:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:50;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:50:o;267:127::-;328:10;323:3;319:20;316:1;309:31;359:4;356:1;349:15;383:4;380:1;373:15;399:275;470:2;464:9;535:2;516:13;;-1:-1:-1;;512:27:50;500:40;;570:18;555:34;;591:22;;;552:62;549:88;;;617:18;;:::i;:::-;653:2;646:22;399:275;;-1:-1:-1;399:275:50:o;679:183::-;739:4;772:18;764:6;761:30;758:56;;;794:18;;:::i;:::-;-1:-1:-1;839:1:50;835:14;851:4;831:25;;679:183::o;867:173::-;935:20;;-1:-1:-1;;;;;984:31:50;;974:42;;964:70;;1030:1;1027;1020:12;964:70;867:173;;;:::o;1045:668::-;1099:5;1152:3;1145:4;1137:6;1133:17;1129:27;1119:55;;1170:1;1167;1160:12;1119:55;1206:6;1193:20;1232:4;1256:60;1272:43;1312:2;1272:43;:::i;:::-;1256:60;:::i;:::-;1350:15;;;1436:1;1432:10;;;;1420:23;;1416:32;;;1381:12;;;;1460:15;;;1457:35;;;1488:1;1485;1478:12;1457:35;1524:2;1516:6;1512:15;1536:148;1552:6;1547:3;1544:15;1536:148;;;1618:23;1637:3;1618:23;:::i;:::-;1606:36;;1662:12;;;;1569;;1536:148;;;-1:-1:-1;1702:5:50;1045:668;-1:-1:-1;;;;;;1045:668:50:o;1718:118::-;1804:5;1797:13;1790:21;1783:5;1780:32;1770:60;;1826:1;1823;1816:12;1841:862;1983:6;1991;1999;2007;2015;2068:3;2056:9;2047:7;2043:23;2039:33;2036:53;;;2085:1;2082;2075:12;2036:53;2121:9;2108:23;2098:33;;2178:2;2167:9;2163:18;2150:32;2140:42;;2233:2;2222:9;2218:18;2205:32;2256:18;2297:2;2289:6;2286:14;2283:34;;;2313:1;2310;2303:12;2283:34;2336:61;2389:7;2380:6;2369:9;2365:22;2336:61;:::i;:::-;2326:71;;2450:2;2439:9;2435:18;2422:32;2406:48;;2479:2;2469:8;2466:16;2463:36;;;2495:1;2492;2485:12;2463:36;;2518:63;2573:7;2562:8;2551:9;2547:24;2518:63;:::i;:::-;2508:73;;;2631:3;2620:9;2616:19;2603:33;2645:28;2667:5;2645:28;:::i;:::-;2692:5;2682:15;;;1841:862;;;;;;;;:::o;2708:452::-;2791:6;2799;2807;2815;2868:3;2856:9;2847:7;2843:23;2839:33;2836:53;;;2885:1;2882;2875:12;2836:53;2921:9;2908:23;2898:33;;2978:2;2967:9;2963:18;2950:32;2940:42;;3001:38;3035:2;3024:9;3020:18;3001:38;:::i;:::-;2991:48;;3089:2;3078:9;3074:18;3061:32;3102:28;3124:5;3102:28;:::i;:::-;2708:452;;;;-1:-1:-1;2708:452:50;;-1:-1:-1;;2708:452:50:o;4664:322::-;4741:6;4749;4757;4810:2;4798:9;4789:7;4785:23;4781:32;4778:52;;;4826:1;4823;4816:12;4778:52;4862:9;4849:23;4839:33;;4919:2;4908:9;4904:18;4891:32;4881:42;;4942:38;4976:2;4965:9;4961:18;4942:38;:::i;:::-;4932:48;;4664:322;;;;;:::o;5635:180::-;5694:6;5747:2;5735:9;5726:7;5722:23;5718:32;5715:52;;;5763:1;5760;5753:12;5715:52;-1:-1:-1;5786:23:50;;5635:180;-1:-1:-1;5635:180:50:o;6641:1502::-;6811:6;6819;6827;6835;6843;6896:3;6884:9;6875:7;6871:23;6867:33;6864:53;;;6913:1;6910;6903:12;6864:53;6949:9;6936:23;6926:33;;6978:2;7027;7016:9;7012:18;6999:32;6989:42;;7082:2;7071:9;7067:18;7054:32;7105:18;7146:2;7138:6;7135:14;7132:34;;;7162:1;7159;7152:12;7132:34;7185:61;7238:7;7229:6;7218:9;7214:22;7185:61;:::i;:::-;7175:71;;7299:2;7288:9;7284:18;7271:32;7255:48;;7328:2;7318:8;7315:16;7312:36;;;7344:1;7341;7334:12;7312:36;7367:63;7422:7;7411:8;7400:9;7396:24;7367:63;:::i;:::-;7357:73;;7483:3;7472:9;7468:19;7455:33;7439:49;;7513:2;7503:8;7500:16;7497:36;;;7529:1;7526;7519:12;7497:36;-1:-1:-1;7552:24:50;;7607:4;7599:13;;7595:27;-1:-1:-1;7585:55:50;;7636:1;7633;7626:12;7585:55;7672:2;7659:16;7695:60;7711:43;7751:2;7711:43;:::i;7695:60::-;7789:15;;;7871:1;7867:10;;;;7859:19;;7855:28;;;7820:12;;;;7895:19;;;7892:39;;;7927:1;7924;7917:12;7892:39;7951:11;;;;7971:142;7987:6;7982:3;7979:15;7971:142;;;8053:17;;8041:30;;8004:12;;;;8091;;;;7971:142;;;8132:5;8122:15;;;;;;;6641:1502;;;;;;;;:::o;8148:484::-;8250:6;8258;8266;8319:2;8307:9;8298:7;8294:23;8290:32;8287:52;;;8335:1;8332;8325:12;8287:52;8371:9;8358:23;8348:33;;8428:2;8417:9;8413:18;8400:32;8390:42;;8483:2;8472:9;8468:18;8455:32;8510:18;8502:6;8499:30;8496:50;;;8542:1;8539;8532:12;8496:50;8565:61;8618:7;8609:6;8598:9;8594:22;8565:61;:::i;:::-;8555:71;;;8148:484;;;;;:::o;9481:732::-;9617:6;9625;9633;9641;9694:3;9682:9;9673:7;9669:23;9665:33;9662:53;;;9711:1;9708;9701:12;9662:53;9747:9;9734:23;9724:33;;9804:2;9793:9;9789:18;9776:32;9766:42;;9859:2;9848:9;9844:18;9831:32;9882:18;9923:2;9915:6;9912:14;9909:34;;;9939:1;9936;9929:12;9909:34;9962:61;10015:7;10006:6;9995:9;9991:22;9962:61;:::i;:::-;9952:71;;10076:2;10065:9;10061:18;10048:32;10032:48;;10105:2;10095:8;10092:16;10089:36;;;10121:1;10118;10111:12;10089:36;;10144:63;10199:7;10188:8;10177:9;10173:24;10144:63;:::i;:::-;10134:73;;;9481:732;;;;;;;:::o;10400:186::-;10459:6;10512:2;10500:9;10491:7;10487:23;10483:32;10480:52;;;10528:1;10525;10518:12;10480:52;10551:29;10570:9;10551:29;:::i;10591:691::-;10720:6;10728;10736;10744;10752;10760;10813:3;10801:9;10792:7;10788:23;10784:33;10781:53;;;10830:1;10827;10820:12;10781:53;10866:9;10853:23;10843:33;;10923:2;10912:9;10908:18;10895:32;10885:42;;10974:2;10963:9;10959:18;10946:32;10936:42;;11025:2;11014:9;11010:18;10997:32;10987:42;;11076:3;11065:9;11061:19;11048:33;11038:43;;11132:3;11121:9;11117:19;11104:33;11160:18;11152:6;11149:30;11146:50;;;11192:1;11189;11182:12;11146:50;11215:61;11268:7;11259:6;11248:9;11244:22;11215:61;:::i;:::-;11205:71;;;10591:691;;;;;;;;:::o;11287:254::-;11355:6;11363;11416:2;11404:9;11395:7;11391:23;11387:32;11384:52;;;11432:1;11429;11422:12;11384:52;11455:29;11474:9;11455:29;:::i;:::-;11445:39;11531:2;11516:18;;;;11503:32;;-1:-1:-1;;;11287:254:50:o;11546:391::-;11632:6;11640;11648;11656;11709:3;11697:9;11688:7;11684:23;11680:33;11677:53;;;11726:1;11723;11716:12;11677:53;11762:9;11749:23;11739:33;;11819:2;11808:9;11804:18;11791:32;11781:42;;11842:38;11876:2;11865:9;11861:18;11842:38;:::i;:::-;11546:391;;;;-1:-1:-1;11832:48:50;;11927:2;11912:18;11899:32;;-1:-1:-1;;11546:391:50:o;12301:355::-;12503:2;12485:21;;;12542:2;12522:18;;;12515:30;12581:33;12576:2;12561:18;;12554:61;12647:2;12632:18;;12301:355::o;13371:127::-;13432:10;13427:3;13423:20;13420:1;13413:31;13463:4;13460:1;13453:15;13487:4;13484:1;13477:15;13503:127;13564:10;13559:3;13555:20;13552:1;13545:31;13595:4;13592:1;13585:15;13619:4;13616:1;13609:15;13635:135;13674:3;13695:17;;;13692:43;;13715:18;;:::i;:::-;-1:-1:-1;13762:1:50;13751:13;;13635:135::o;13775:128::-;13842:9;;;13863:11;;;13860:37;;;13877:18;;:::i;13908:125::-;13973:9;;;13994:10;;;13991:36;;;14007:18;;:::i;16152:658::-;16323:2;16375:21;;;16445:13;;16348:18;;;16467:22;;;16294:4;;16323:2;16546:15;;;;16520:2;16505:18;;;16294:4;16589:195;16603:6;16600:1;16597:13;16589:195;;;16668:13;;-1:-1:-1;;;;;16664:39:50;16652:52;;16759:15;;;;16724:12;;;;16700:1;16618:9;16589:195;;;-1:-1:-1;16801:3:50;;16152:658;-1:-1:-1;;;;;;16152:658:50:o;17829:355::-;18031:2;18013:21;;;18070:2;18050:18;;;18043:30;18109:33;18104:2;18089:18;;18082:61;18175:2;18160:18;;17829:355::o;18189:335::-;18391:2;18373:21;;;18430:2;18410:18;;;18403:30;-1:-1:-1;;;18464:2:50;18449:18;;18442:41;18515:2;18500:18;;18189:335::o;18529:168::-;18569:7;18635:1;18631;18627:6;18623:14;18620:1;18617:21;18612:1;18605:9;18598:17;18594:45;18591:71;;;18642:18;;:::i;:::-;-1:-1:-1;18682:9:50;;18529:168::o;18702:217::-;18742:1;18768;18758:132;;18812:10;18807:3;18803:20;18800:1;18793:31;18847:4;18844:1;18837:15;18875:4;18872:1;18865:15;18758:132;-1:-1:-1;18904:9:50;;18702:217::o;21990:344::-;22192:2;22174:21;;;22231:2;22211:18;;;22204:30;-1:-1:-1;;;22265:2:50;22250:18;;22243:50;22325:2;22310:18;;21990:344::o;22339:339::-;22541:2;22523:21;;;22580:2;22560:18;;;22553:30;-1:-1:-1;;;22614:2:50;22599:18;;22592:45;22669:2;22654:18;;22339:339::o;22683:136::-;22722:3;22750:5;22740:39;;22759:18;;:::i;:::-;-1:-1:-1;;;22795:18:50;;22683:136::o;27412:407::-;27614:2;27596:21;;;27653:2;27633:18;;;27626:30;27692:34;27687:2;27672:18;;27665:62;-1:-1:-1;;;27758:2:50;27743:18;;27736:41;27809:3;27794:19;;27412:407::o;30667:245::-;30734:6;30787:2;30775:9;30766:7;30762:23;30758:32;30755:52;;;30803:1;30800;30793:12;30755:52;30835:9;30829:16;30854:28;30876:5;30854:28;:::i;32093:250::-;32178:1;32188:113;32202:6;32199:1;32196:13;32188:113;;;32278:11;;;32272:18;32259:11;;;32252:39;32224:2;32217:10;32188:113;;;-1:-1:-1;;32335:1:50;32317:16;;32310:27;32093:250::o;32348:287::-;32477:3;32515:6;32509:13;32531:66;32590:6;32585:3;32578:4;32570:6;32566:17;32531:66;:::i;:::-;32613:16;;;;;32348:287;-1:-1:-1;;32348:287:50:o;32640:396::-;32789:2;32778:9;32771:21;32752:4;32821:6;32815:13;32864:6;32859:2;32848:9;32844:18;32837:34;32880:79;32952:6;32947:2;32936:9;32932:18;32927:2;32919:6;32915:15;32880:79;:::i;:::-;33020:2;32999:15;-1:-1:-1;;32995:29:50;32980:45;;;;33027:2;32976:54;;32640:396;-1:-1:-1;;32640:396:50:o", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mgp\",\"type\":\"uint256\"}],\"name\":\"AddedCollaborator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"observers\",\"type\":\"address[]\"}],\"name\":\"AddedObservers\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator\",\"type\":\"address\"}],\"name\":\"ApprovedCollaborator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"}],\"name\":\"ApprovedProject\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"revertedBudget\",\"type\":\"uint256\"}],\"name\":\"CanceledPackage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"budget\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"observerBudget\",\"type\":\"uint256\"}],\"name\":\"CreatedPackage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"budget\",\"type\":\"uint256\"}],\"name\":\"CreatedProject\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"budgetLeft\",\"type\":\"uint256\"}],\"name\":\"FinishedPackage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"budgetLeft\",\"type\":\"uint256\"}],\"name\":\"FinishedProject\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mgp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"}],\"name\":\"PaidCollaboratorRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaidObserverFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId_\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId_\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator_\",\"type\":\"address\"}],\"name\":\"RemovedCollaborator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"observers\",\"type\":\"address[]\"}],\"name\":\"RemovedObservers\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"}],\"name\":\"StartedProject\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldTreasury\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTreasury\",\"type\":\"address\"}],\"name\":\"UpdatedTreasury\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PCT_PRECISION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_collaborator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_mgp\",\"type\":\"uint256\"}],\"name\":\"addCollaborator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"}],\"name\":\"addObservers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_collaborator\",\"type\":\"address\"}],\"name\":\"approveCollaborator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_collaborators\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"_workStarted\",\"type\":\"bool\"}],\"name\":\"cancelPackage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_budget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_bonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_observerBudget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_collaboratorsLimit\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"}],\"name\":\"createPackage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"budget_\",\"type\":\"uint256\"}],\"name\":\"createProject\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_collaborators\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_scores\",\"type\":\"uint256[]\"}],\"name\":\"finishPackage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"}],\"name\":\"finishProject\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_collaborator\",\"type\":\"address\"}],\"name\":\"getCollaboratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"mgp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeCreated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeMgpApproved\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeMgpPaid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeBonusPaid\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRemoved\",\"type\":\"bool\"}],\"internalType\":\"structCollaborator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_collaborator\",\"type\":\"address\"}],\"name\":\"getCollaboratorRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_observer\",\"type\":\"address\"}],\"name\":\"getObserverData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"timeCreated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timePaid\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRemoved\",\"type\":\"bool\"}],\"internalType\":\"structObserver\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_observer\",\"type\":\"address\"}],\"name\":\"getObserverFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"}],\"name\":\"getPackageData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"budget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"budgetAllocated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"budgetPaid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"budgetObservers\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"budgetObserversPaid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bonusPaid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collaboratorsPaidBonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeCreated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeFinished\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalObservers\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalCollaborators\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collaboratorsLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"approvedCollaborators\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeCanceled\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"}],\"internalType\":\"structPackage\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"}],\"name\":\"getProjectData\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"budget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"budgetAllocated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"budgetPaid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeCreated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeFinished\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalPackages\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalFinishedPackages\",\"type\":\"uint256\"}],\"internalType\":\"structProject\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"treasury_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_collaborator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_shouldPayMgp\",\"type\":\"bool\"}],\"name\":\"removeCollaborator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"}],\"name\":\"removeObservers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"}],\"name\":\"selfRemove\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_observersIn\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_observersOut\",\"type\":\"address[]\"}],\"name\":\"updateObservers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"treasury_\",\"type\":\"address\"}],\"name\":\"updateTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "608060405234801561001057600080fd5b5061398f806100206000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806371af530b116100de578063be06555e11610097578063e1d8451411610071578063e1d8451414610519578063e82d657214610523578063ec104ff114610536578063f2fde38b1461054957600080fd5b8063be06555e146104e0578063c4d66de8146104f3578063dcce114e1461050657600080fd5b806371af530b146104625780637cbe62c6146104755780637f51bb1f1461049657806385ceab29146104a95780638da5cb5b146104bc578063b2b57114146104cd57600080fd5b80632926aa80116101305780632926aa80146103785780633a7efc841461038b57806358ff3e471461039e578063590ab7db146103f857806361d027b31461042f578063715018a61461045a57600080fd5b806303a1fc2214610178578063085f8a9c1461018d5780630eae9d88146101a057806320000478146101b35780632008002e1461028557806323d683e7146102f0575b600080fd5b61018b610186366004613192565b61055c565b005b61018b61019b3660046132bb565b610661565b61018b6101ae366004613347565b610889565b6101c66101c1366004613192565b6109f1565b60405161027c9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526101e0918201511515918101919091526102000190565b60405180910390f35b61029861029336600461338f565b610b4a565b60405161027c9190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c0830151151560c083015292915050565b6103036102fe3660046133c4565b610c12565b60405161027c919081516001600160a01b0390811682526020808401519091169082015260408083015190820152606080830151908201526080808301519082015260a0828101519082015260c0808301519082015260e0808301519082015261010091820151918101919091526101200190565b61018b6103863660046133dd565b610cf8565b61018b6103993660046134cf565b611041565b6103e36103ac36600461338f565b6000928352609b602090815260408085209385529281528284206001600160a01b0392909216845252902080546001909101549091565b6040805192835260208301919091520161027c565b61040b61040636600461338f565b6111a4565b6040805182518152602080840151908201529181015115159082015260600161027c565b609754610442906001600160a01b031681565b6040516001600160a01b03909116815260200161027c565b61018b611222565b61018b61047036600461351f565b611236565b61048861048336600461338f565b61146b565b60405190815260200161027c565b61018b6104a4366004613596565b6114ef565b61018b6104b73660046133c4565b6115aa565b6033546001600160a01b0316610442565b61018b6104db3660046135b1565b611666565b61018b6104ee3660046134cf565b611843565b61018b610501366004613596565b61188c565b61018b61051436600461338f565b611a0e565b610488620f424081565b61018b61053136600461361d565b611aff565b61018b610544366004613647565b611c12565b61018b610557366004613596565b611d5b565b6000828152609a60209081526040808320848452825280832033845290915290205460ff16156105d35760405162461bcd60e51b815260206004820152601e60248201527f636f6c6c61626f7261746f7220617070726f76656420616c726561647921000060448201526064015b60405180910390fd5b6000828152609b60209081526040808320848452825280832033845290915290206105fd81611dd4565b80546000848152609960209081526040808320868452909152812061062492909190611e1b565b604051338152829084907f1810672a3dad8f995260ba0777de0e36f462980ce02a3951804f83aac9c2d455906020015b60405180910390a3505050565b60008581526098602052604090205485906001600160a01b031633146106995760405162461bcd60e51b81526004016105ca90613684565b60008681526099602090815260408083208884529091529020600b8101548551146107065760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420636f6c6c61626f7261746f7273206c656e6774680000000060448201526064016105ca565b80600a015484511461075a5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206f6273657276657273206c656e677468000000000000000060448201526064016105ca565b61076381611e7d565b82156107f25760005b85518110156107ad5761079b888888848151811061078c5761078c6136bb565b60200260200101516000611eb7565b806107a5816136e7565b91505061076c565b5060005b84518110156107f0576107de88888784815181106107d1576107d16136bb565b602002602001015161203e565b806107e8816136e7565b9150506107b1565b505b6005810154600282015482546000929161080b91613700565b6108159190613713565b90508160040154826003015461082b9190613700565b6108359082613713565b60008981526098602052604090209091506108509082612115565b8087897f56829e4c362b83a2633cd58ab80f95a4c661582416ca0dd74cf6844198ef939060405160405180910390a45050505050505050565b60008481526098602052604090205484906001600160a01b031633146108c15760405162461bcd60e51b81526004016105ca90613684565b6000858152609a6020908152604080832087845282528083206001600160a01b038716845290915290205460ff161561093c5760405162461bcd60e51b815260206004820152601e60248201527f636f6c6c61626f7261746f7220617070726f76656420616c726561647921000060448201526064016105ca565b6000858152609b6020908152604080832087845282528083206001600160a01b038716845290915290208215610979576109798686866000611eb7565b61098281611dd4565b8054600087815260996020908152604080832089845290915290206109a8918590611e1b565b6040516001600160a01b0385168152859087907f1810672a3dad8f995260ba0777de0e36f462980ce02a3951804f83aac9c2d455906020015b60405180910390a3505050505050565b610a736040518061020001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b506000828152609960209081526040808320848452825291829020825161020081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e8201546101c0820152600f9091015460ff1615156101e08201525b92915050565b610b8c6040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b506000838152609b6020908152604080832085845282528083206001600160a01b0385168452825291829020825160e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a082015260069091015460ff16151560c08201525b9392505050565b610c7360405180610120016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526098602090815260409182902082516101208101845281546001600160a01b039081168252600183015416928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015461010082015290565b60008581526098602052604090205485906001600160a01b03163314610d305760405162461bcd60e51b81526004016105ca90613684565b60008681526099602090815260408083208884529091529020600b810154855114610d9d5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420636f6c6c61626f7261746f7273206c69737400000000000060448201526064016105ca565b8251855114610dee5760405162461bcd60e51b815260206004820152601760248201527f61727261797327206c656e677468206d69736d6174636800000000000000000060448201526064016105ca565b80600a0154845114610e3b5760405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a59081bd89cd95c9d995c9cc81b1a5cdd60521b60448201526064016105ca565b6000610e4682612149565b6000898152609860205260409020909150610e61908261222f565b60008260050154118015610e76575060008651115b15610f75576000805b8551811015610f20576000868281518110610e9c57610e9c6136bb565b602002602001015111610ee75760405162461bcd60e51b8152602060048201526013602482015272696e76616c696420626f6e75732073636f726560681b60448201526064016105ca565b858181518110610ef957610ef96136bb565b602002602001015182610f0c9190613713565b915080610f18816136e7565b915050610e7f565b50620f42408114610f735760405162461bcd60e51b815260206004820152601c60248201527f696e636f727265637420746f74616c20626f6e75732073636f7265730000000060448201526064016105ca565b505b60005b8651811015610fd157610fbf8989898481518110610f9857610f986136bb565b6020026020010151888581518110610fb257610fb26136bb565b6020026020010151611eb7565b80610fc9816136e7565b915050610f78565b5060005b855181101561100757610ff589898884815181106107d1576107d16136bb565b80610fff816136e7565b915050610fd5565b508087897fca0673658d6abd07a7992b1c692276e95e5693b83c44ebcbc0f5661add8f274f60405160405180910390a45050505050505050565b60008381526098602052604090205483906001600160a01b031633146110795760405162461bcd60e51b81526004016105ca90613684565b60008251116110c35760405162461bcd60e51b8152602060048201526016602482015275656d707479206f62736572766572732061727261792160501b60448201526064016105ca565b60005b8251811015611140576000858152609c602090815260408083208784529091528120845161112e9290869085908110611101576111016136bb565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020612261565b80611138816136e7565b9150506110c6565b50815160008581526099602090815260408083208784529091529020611165916122c8565b82847f85572f85b2bc590a66fd61ccb26b098a3e1e5be48c230a5cc1f4c1d23603d1e1846040516111969190613726565b60405180910390a350505050565b6111ca604051806060016040528060008152602001600081526020016000151581525090565b506000928352609c602090815260408085209385529281528284206001600160a01b03929092168452908152918190208151606081018352815481526001820154938101939093526002015460ff1615159082015290565b61122a61230c565b6112346000612366565b565b60008481526098602052604090205484906001600160a01b0316331461126e5760405162461bcd60e51b81526004016105ca90613684565b60008351118061127f575060008251115b6112cb5760405162461bcd60e51b815260206004820152601760248201527f656d707479206f6273657276657273206172726179732100000000000000000060448201526064016105ca565b8251156113ae5760005b835181101561134f576000868152609c602090815260408083208884529091528120855161133d9290879085908110611310576113106136bb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206123b8565b80611347816136e7565b9150506112d5565b5082516000868152609960209081526040808320888452909152902061137491612405565b83857fb1cc0cc3834b00e41fce4d1b26e0683b2457f753ec2683b88651d001476a6e38856040516113a59190613726565b60405180910390a35b8151156114645760005b8251811015611405576000868152609c60209081526040808320888452909152812084516113f39290869085908110611101576111016136bb565b806113fd816136e7565b9150506113b8565b5081516000868152609960209081526040808320888452909152902061142a916122c8565b83857f85572f85b2bc590a66fd61ccb26b098a3e1e5be48c230a5cc1f4c1d23603d1e18460405161145b9190613726565b60405180910390a35b5050505050565b6000838152609c6020908152604080832085845282528083206001600160a01b0385168452909152812060018101541515806114a657508054155b806114b55750600281015460ff165b156114c4576000915050610c0b565b600085815260996020908152604080832087845290915290206114e690612497565b95945050505050565b6114f761230c565b6001600160a01b0381166115485760405162461bcd60e51b8152602060048201526018602482015277696e76616c6964207472656173757279206164647265737360401b60448201526064016105ca565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f2ac12ebf7dfd56173c73b2e43941f0faed1c3f7fb6f959191a4ab4bdd3d32e2191015b60405180910390a15050565b60008181526098602052604090205481906001600160a01b031633146115e25760405162461bcd60e51b81526004016105ca90613684565b6002606554036116045760405162461bcd60e51b81526004016105ca90613773565b60026065556000828152609860205260408120611620906124e9565b9050827f57854ae7fa7dd108a735bb91879e7ef3ba109e004981ca9d6df5f72510ddb7318260405161165491815260200190565b60405180910390a25050600160655550565b60008681526098602052604090205486906001600160a01b0316331461169e5760405162461bcd60e51b81526004016105ca90613684565b85600081116116bf5760405162461bcd60e51b81526004016105ca906137aa565b6002606554036116e15760405162461bcd60e51b81526004016105ca90613773565b600260655560008881526098602052604081209086611700898b613713565b61170a9190613713565b905061171682826125d8565b60006117238b60006126bc565b60008c8152609960209081526040808320848452909152902090915061174c818c8b8d8c61272b565b611789336097546001600160a01b031660646117698760056137cf565b61177391906137ee565b60018801546001600160a01b03169291906127b3565b8651156117eb57600089116117e05760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206f627365727665727320627564676574000000000000000060448201526064016105ca565b6117eb8c838961281e565b604080518c8152602081018c90529081018a905282908d907f078c5efce40e0c0891ebda17cfbf5d7cdd9d5eb4afb16375d39b8243451871e29060600160405180910390a35050600160655550505050505050505050565b60008381526098602052604090205483906001600160a01b0316331461187b5760405162461bcd60e51b81526004016105ca90613684565b61188684848461281e565b50505050565b600054610100900460ff16158080156118ac5750600054600160ff909116105b806118c65750303b1580156118c6575060005460ff166001145b6119295760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105ca565b6000805460ff19166001179055801561194c576000805461ff0019166101001790555b611954612989565b61195c6129b8565b6001600160a01b0382166119ad5760405162461bcd60e51b8152602060048201526018602482015277696e76616c6964207472656173757279206164647265737360401b60448201526064016105ca565b609780546001600160a01b0319166001600160a01b0384161790558015611a0a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161159e565b5050565b60008381526098602052604090205483906001600160a01b03163314611a465760405162461bcd60e51b81526004016105ca90613684565b6000848152609a6020908152604080832086845282528083206001600160a01b038616808552908352818420805460ff19166001179055878452609b835281842087855283528184209084529091529020611aa0906129e7565b60008481526099602090815260408083208684529091529020611ac290612a79565b6040516001600160a01b0383168152839085907f89d75bad6a27d516d326126cd95a5626e99ce9548579494bb6d51f59b9c8878390602001611196565b8060008111611b205760405162461bcd60e51b81526004016105ca906137aa565b600260655403611b425760405162461bcd60e51b81526004016105ca90613773565b60026065556001600160a01b038316611b955760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016105ca565b6000611b9f612ab1565b6000818152609860205260409020909150611bbb908585612b19565b807fe13f31eeb084676e55593cb99c5bef76fadde467d9bc2653f56a4c9c3f3302c633604080516001600160a01b0392831681529188166020830152810186905260600160405180910390a2505060016065555050565b60008481526098602052604090205484906001600160a01b03163314611c4a5760405162461bcd60e51b81526004016105ca90613684565b8160008111611c6b5760405162461bcd60e51b81526004016105ca906137aa565b6001600160a01b038416611cc15760405162461bcd60e51b815260206004820152601e60248201527f636f6c6c61626f7261746f7227732061646472657373206973207a65726f000060448201526064016105ca565b6000868152609b6020908152604080832088845282528083206001600160a01b03881684529091529020611cf59084612b61565b60008681526099602090815260408083208884529091529020611d189084612bd9565b604080516001600160a01b038616815260208101859052869188917f8aa39f8fa6c78a00b31a805b7955eb3e38d4cb7bd4d87c84655269141bd8477e91016109e1565b611d6361230c565b6001600160a01b038116611dc85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ca565b611dd181612366565b50565b8060008160020154118015611dee5750600681015460ff16155b611e0a5760405162461bcd60e51b81526004016105ca90613810565b50600601805460ff19166001179055565b600f830154839060ff16611e415760405162461bcd60e51b81526004016105ca9061383e565b82611e605781846001016000828254611e5a9190613700565b90915550505b600b84018054906000611e7283613867565b919050555050505050565b600f810154819060ff16611ea35760405162461bcd60e51b81526004016105ca9061383e565b5042600e820155600f01805460ff19169055565b6000848152609b6020908152604080832086845282528083206001600160a01b0386168452825280832087845260998352818420878552909252822060058101549192909115801590611f0a5750600084115b15611f6357600b8201546007830154611f24906001613713565b14611f4c57620f4240848360050154611f3d91906137cf565b611f4791906137ee565b611f60565b81600601548260050154611f609190613700565b90505b6000878152609b6020908152604080832089845282528083206001600160a01b03891684529091529020611f979082612ceb565b825460008881526099602090815260408083208a84529091529020611fbc9183612d84565b611fe585828560000154611fd09190613713565b60008a81526098602052604090209190612dce565b8254604080516001600160a01b038816815260208101929092528101829052869088907f53aa87b28abc70f0fb4d2402a35d5e4d91386b5b045ad43d598a715982e32d209060600160405180910390a350505050505050565b6000838152609c6020908152604080832085845282528083206001600160a01b0385168452909152902061207190612e00565b6000838152609960209081526040808320858452909152812061209390612497565b600085815260996020908152604080832087845290915290209091506120b99082612eb2565b60008481526098602052604090206120d2908383612dce565b604080516001600160a01b038416815260208101839052849186917ff791dbe60269baac78be1afe586f70aa816e7a19b3ff88e228ca638e41142dae9101611196565b808260030160008282546121299190613700565b909155505060078201805490600061214083613867565b91905055505050565b600f810154600090829060ff166121725760405162461bcd60e51b81526004016105ca9061383e565b82600d015483600b0154146121c95760405162461bcd60e51b815260206004820152601d60248201527f756e617070726f76656420636f6c6c61626f7261746f7273206c65667400000060448201526064016105ca565b600183015483546121da9190613700565b915082600a01546000036121fa5760038301546121f79083613713565b91505b82600b01546000036122185760058301546122159083613713565b91505b50426009830155600f909101805460ff1916905590565b801561224f57808260030160008282546122499190613700565b90915550505b600882018054906000612140836136e7565b80548190158015906122785750600281015460ff16155b6122b75760405162461bcd60e51b815260206004820152601060248201526f37379039bab1b41037b139b2b93b32b960811b60448201526064016105ca565b50600201805460ff19166001179055565b600f820154829060ff166122ee5760405162461bcd60e51b81526004016105ca9061383e565b8183600a0160008282546123029190613700565b9091555050505050565b6033546001600160a01b031633146112345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ca565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8054156124005760405162461bcd60e51b81526020600482015260166024820152751bd89cd95c9d995c88185b1c9958591e48185919195960521b60448201526064016105ca565b429055565b600f820154829060ff1661242b5760405162461bcd60e51b81526004016105ca9061383e565b600a8284600a015461243d9190613713565b11156124835760405162461bcd60e51b81526020600482015260156024820152741b585e081bd89cd95c9d995c9cc81c995858da1959605a1b60448201526064016105ca565b8183600a0160008282546123029190613713565b600080826004015483600301546124ae9190613700565b9050600083600a015484600301546124c691906137ee565b90506124d38160026137cf565b82106124df57806124e1565b815b949350505050565b6000816006015460001461253f5760405162461bcd60e51b815260206004820152601860248201527f616c72656164792066696e69736865642070726f6a656374000000000000000060448201526064016105ca565b81600801548260070154146125965760405162461bcd60e51b815260206004820152601860248201527f756e66696e6973686564207061636b61676573206c656674000000000000000060448201526064016105ca565b426006830155600382015460028301546000916125b291613700565b90508015610b445782546001840154610b44916001600160a01b03918216911683612ec6565b6006820154156126205760405162461bcd60e51b81526020600482015260136024820152721c1c9bda9958dd081a5cc8199a5b9a5cda1959606a1b60448201526064016105ca565b8082600301546126309190613713565b826002015410156126835760405162461bcd60e51b815260206004820152601e60248201527f6e6f7420656e6f7567682070726f6a65637420627564676574206c656674000060448201526064016105ca565b808260030160008282546126979190613713565b9250508190555060018260070160008282546126b39190613713565b90915550505050565b60006126c782612ef6565b600084815260996020908152604080832084845290915290206008015490915015610b445760405162461bcd60e51b8152602060048201526014602482015273191d5c1b1a58d85d19481c1858dad859d9481a5960621b60448201526064016105ca565b80600010801561273c5750600a8111155b6127885760405162461bcd60e51b815260206004820152601d60248201527f696e636f727265637420636f6c6c61626f7261746f7273206c696d697400000060448201526064016105ca565b92845560038401919091556005830155600c820155426008820155600f01805460ff19166001179055565b6040516001600160a01b03808516602483015283166044820152606481018290526118869085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612f4e565b60008151116128685760405162461bcd60e51b8152602060048201526016602482015275656d707479206f62736572766572732061727261792160501b60448201526064016105ca565b60005b81518110156129335760006001600160a01b0316828281518110612891576128916136bb565b60200260200101516001600160a01b0316036128ef5760405162461bcd60e51b815260206004820152601860248201527f7a65726f206f627365727665722773206164647265737321000000000000000060448201526064016105ca565b6000848152609c60209081526040808320868452909152812083516129219290859085908110611310576113106136bb565b8061292b816136e7565b91505061286b565b5080516000848152609960209081526040808320868452909152902061295891612405565b81837fb1cc0cc3834b00e41fce4d1b26e0683b2457f753ec2683b88651d001476a6e38836040516106549190613726565b600054610100900460ff166129b05760405162461bcd60e51b81526004016105ca9061387e565b611234613020565b600054610100900460ff166129df5760405162461bcd60e51b81526004016105ca9061387e565b611234613050565b8060008160020154118015612a015750600681015460ff16155b612a1d5760405162461bcd60e51b81526004016105ca90613810565b600382015415612a6f5760405162461bcd60e51b815260206004820152601d60248201527f636f6c6c61626f7261746f7220616c726561647920617070726f76656400000060448201526064016105ca565b5042600390910155565b600f810154819060ff16612a9f5760405162461bcd60e51b81526004016105ca9061383e565b600d82018054906000612140836136e7565b6000612abd6000612ef6565b60008181526098602052604090206005015490915015612b165760405162461bcd60e51b8152602060048201526014602482015273191d5c1b1a58d85d19481c1c9bda9958dd081a5960621b60448201526064016105ca565b90565b82546001600160a01b03199081163390811785556001850180546001600160a01b03861693168317905560028501839055426005860155612b5c919030846127b3565b505050565b600682015460ff1680612b7657506002820154155b612bc25760405162461bcd60e51b815260206004820152601a60248201527f636f6c6c61626f7261746f7220616c726561647920616464656400000000000060448201526064016105ca565b815560068101805460ff1916905542600290910155565b600f820154829060ff16612bff5760405162461bcd60e51b81526004016105ca9061383e565b818360010154612c0f9190613713565b83541015612c5f5760405162461bcd60e51b815260206004820152601e60248201527f6e6f7420656e6f756768207061636b61676520627564676574206c656674000060448201526064016105ca565b82600c015483600b015410612cb65760405162461bcd60e51b815260206004820152601b60248201527f636f6c6c61626f7261746f7273206c696d69742072656163686564000000000060448201526064016105ca565b81836001016000828254612cca9190613713565b9091555050600b83018054906000612ce1836136e7565b9190505550505050565b8160008160020154118015612d055750600681015460ff16155b612d215760405162461bcd60e51b81526004016105ca90613810565b600483015415612d695760405162461bcd60e51b81526020600482015260136024820152721c995dd85c9908185b1c9958591e481c185a59606a1b60448201526064016105ca565b4260048401558115612b5c5750600182015542600590910155565b81836002016000828254612d989190613713565b90915550508015612b5c5780836006016000828254612db79190613713565b9091555050600783018054906000612ce1836136e7565b80836004016000828254612de29190613713565b90915550506001830154612b5c906001600160a01b03168383612ec6565b8054819015801590612e175750600281015460ff16155b612e565760405162461bcd60e51b815260206004820152601060248201526f37379039bab1b41037b139b2b93b32b960811b60448201526064016105ca565b600182015415612ea85760405162461bcd60e51b815260206004820152601960248201527f6f627365727665722066656520616c726561647920706169640000000000000060448201526064016105ca565b5042600190910155565b808260040160008282546126b39190613713565b6040516001600160a01b038316602482015260448101829052612b5c90849063a9059cbb60e01b906064016127e7565b600033612f04600143613700565b60405160609290921b6bffffffffffffffffffffffff1916602083015240603482015260548101839052607401604051602081830303815290604052805190602001209050919050565b6000612fa3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661307e9092919063ffffffff16565b805190915015612b5c5780806020019051810190612fc191906138c9565b612b5c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105ca565b600054610100900460ff166130475760405162461bcd60e51b81526004016105ca9061387e565b61123433612366565b600054610100900460ff166130775760405162461bcd60e51b81526004016105ca9061387e565b6001606555565b60606124e18484600085856001600160a01b0385163b6130e05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105ca565b600080866001600160a01b031685876040516130fc919061390a565b60006040518083038185875af1925050503d8060008114613139576040519150601f19603f3d011682016040523d82523d6000602084013e61313e565b606091505b509150915061314e828286613159565b979650505050505050565b60608315613168575081610c0b565b8251156131785782518084602001fd5b8160405162461bcd60e51b81526004016105ca9190613926565b600080604083850312156131a557600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156131f3576131f36131b4565b604052919050565b600067ffffffffffffffff821115613215576132156131b4565b5060051b60200190565b80356001600160a01b038116811461323657600080fd5b919050565b600082601f83011261324c57600080fd5b8135602061326161325c836131fb565b6131ca565b82815260059290921b8401810191818101908684111561328057600080fd5b8286015b848110156132a2576132958161321f565b8352918301918301613284565b509695505050505050565b8015158114611dd157600080fd5b600080600080600060a086880312156132d357600080fd5b8535945060208601359350604086013567ffffffffffffffff808211156132f957600080fd5b61330589838a0161323b565b9450606088013591508082111561331b57600080fd5b506133288882890161323b565b9250506080860135613339816132ad565b809150509295509295909350565b6000806000806080858703121561335d57600080fd5b84359350602085013592506133746040860161321f565b91506060850135613384816132ad565b939692955090935050565b6000806000606084860312156133a457600080fd5b83359250602084013591506133bb6040850161321f565b90509250925092565b6000602082840312156133d657600080fd5b5035919050565b600080600080600060a086880312156133f557600080fd5b853594506020808701359450604087013567ffffffffffffffff8082111561341c57600080fd5b6134288a838b0161323b565b9550606089013591508082111561343e57600080fd5b61344a8a838b0161323b565b9450608089013591508082111561346057600080fd5b508701601f8101891361347257600080fd5b803561348061325c826131fb565b81815260059190911b8201830190838101908b83111561349f57600080fd5b928401925b828410156134bd578335825292840192908401906134a4565b80955050505050509295509295909350565b6000806000606084860312156134e457600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561350957600080fd5b6135158682870161323b565b9150509250925092565b6000806000806080858703121561353557600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561355b57600080fd5b6135678883890161323b565b9350606087013591508082111561357d57600080fd5b5061358a8782880161323b565b91505092959194509250565b6000602082840312156135a857600080fd5b610c0b8261321f565b60008060008060008060c087890312156135ca57600080fd5b863595506020870135945060408701359350606087013592506080870135915060a087013567ffffffffffffffff81111561360457600080fd5b61361089828a0161323b565b9150509295509295509295565b6000806040838503121561363057600080fd5b6136398361321f565b946020939093013593505050565b6000806000806080858703121561365d57600080fd5b84359350602085013592506136746040860161321f565b9396929550929360600135925050565b6020808252601f908201527f63616c6c6572206973206e6f742070726f6a65637420696e69746961746f7200604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016136f9576136f96136d1565b5060010190565b81810381811115610b4457610b446136d1565b80820180821115610b4457610b446136d1565b6020808252825182820181905260009190848201906040850190845b818110156137675783516001600160a01b031683529284019291840191600101613742565b50909695505050505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252600b908201526a16995c9bc8185b5bdd5b9d60aa1b604082015260600190565b60008160001904831182151516156137e9576137e96136d1565b500290565b60008261380b57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526014908201527337379039bab1b41031b7b63630b137b930ba37b960611b604082015260600190565b6020808252600f908201526e6e6f2073756368207061636b61676560881b604082015260600190565b600081613876576138766136d1565b506000190190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156138db57600080fd5b8151610c0b816132ad565b60005b838110156139015781810151838201526020016138e9565b50506000910152565b6000825161391c8184602087016138e6565b9190910192915050565b60208152600082518060208401526139458160408501602087016138e6565b601f01601f1916919091016040019291505056fea26469706673582212206fbfdd8250baaf0738cdc9fbe9dcc1cc69f53e27eb017c3706658ddfb1219f8d64736f6c63430008100033", "bin-runtime": "608060405234801561001057600080fd5b50600436106101735760003560e01c806371af530b116100de578063be06555e11610097578063e1d8451411610071578063e1d8451414610519578063e82d657214610523578063ec104ff114610536578063f2fde38b1461054957600080fd5b8063be06555e146104e0578063c4d66de8146104f3578063dcce114e1461050657600080fd5b806371af530b146104625780637cbe62c6146104755780637f51bb1f1461049657806385ceab29146104a95780638da5cb5b146104bc578063b2b57114146104cd57600080fd5b80632926aa80116101305780632926aa80146103785780633a7efc841461038b57806358ff3e471461039e578063590ab7db146103f857806361d027b31461042f578063715018a61461045a57600080fd5b806303a1fc2214610178578063085f8a9c1461018d5780630eae9d88146101a057806320000478146101b35780632008002e1461028557806323d683e7146102f0575b600080fd5b61018b610186366004613192565b61055c565b005b61018b61019b3660046132bb565b610661565b61018b6101ae366004613347565b610889565b6101c66101c1366004613192565b6109f1565b60405161027c9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526101e0918201511515918101919091526102000190565b60405180910390f35b61029861029336600461338f565b610b4a565b60405161027c9190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c0830151151560c083015292915050565b6103036102fe3660046133c4565b610c12565b60405161027c919081516001600160a01b0390811682526020808401519091169082015260408083015190820152606080830151908201526080808301519082015260a0828101519082015260c0808301519082015260e0808301519082015261010091820151918101919091526101200190565b61018b6103863660046133dd565b610cf8565b61018b6103993660046134cf565b611041565b6103e36103ac36600461338f565b6000928352609b602090815260408085209385529281528284206001600160a01b0392909216845252902080546001909101549091565b6040805192835260208301919091520161027c565b61040b61040636600461338f565b6111a4565b6040805182518152602080840151908201529181015115159082015260600161027c565b609754610442906001600160a01b031681565b6040516001600160a01b03909116815260200161027c565b61018b611222565b61018b61047036600461351f565b611236565b61048861048336600461338f565b61146b565b60405190815260200161027c565b61018b6104a4366004613596565b6114ef565b61018b6104b73660046133c4565b6115aa565b6033546001600160a01b0316610442565b61018b6104db3660046135b1565b611666565b61018b6104ee3660046134cf565b611843565b61018b610501366004613596565b61188c565b61018b61051436600461338f565b611a0e565b610488620f424081565b61018b61053136600461361d565b611aff565b61018b610544366004613647565b611c12565b61018b610557366004613596565b611d5b565b6000828152609a60209081526040808320848452825280832033845290915290205460ff16156105d35760405162461bcd60e51b815260206004820152601e60248201527f636f6c6c61626f7261746f7220617070726f76656420616c726561647921000060448201526064015b60405180910390fd5b6000828152609b60209081526040808320848452825280832033845290915290206105fd81611dd4565b80546000848152609960209081526040808320868452909152812061062492909190611e1b565b604051338152829084907f1810672a3dad8f995260ba0777de0e36f462980ce02a3951804f83aac9c2d455906020015b60405180910390a3505050565b60008581526098602052604090205485906001600160a01b031633146106995760405162461bcd60e51b81526004016105ca90613684565b60008681526099602090815260408083208884529091529020600b8101548551146107065760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420636f6c6c61626f7261746f7273206c656e6774680000000060448201526064016105ca565b80600a015484511461075a5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206f6273657276657273206c656e677468000000000000000060448201526064016105ca565b61076381611e7d565b82156107f25760005b85518110156107ad5761079b888888848151811061078c5761078c6136bb565b60200260200101516000611eb7565b806107a5816136e7565b91505061076c565b5060005b84518110156107f0576107de88888784815181106107d1576107d16136bb565b602002602001015161203e565b806107e8816136e7565b9150506107b1565b505b6005810154600282015482546000929161080b91613700565b6108159190613713565b90508160040154826003015461082b9190613700565b6108359082613713565b60008981526098602052604090209091506108509082612115565b8087897f56829e4c362b83a2633cd58ab80f95a4c661582416ca0dd74cf6844198ef939060405160405180910390a45050505050505050565b60008481526098602052604090205484906001600160a01b031633146108c15760405162461bcd60e51b81526004016105ca90613684565b6000858152609a6020908152604080832087845282528083206001600160a01b038716845290915290205460ff161561093c5760405162461bcd60e51b815260206004820152601e60248201527f636f6c6c61626f7261746f7220617070726f76656420616c726561647921000060448201526064016105ca565b6000858152609b6020908152604080832087845282528083206001600160a01b038716845290915290208215610979576109798686866000611eb7565b61098281611dd4565b8054600087815260996020908152604080832089845290915290206109a8918590611e1b565b6040516001600160a01b0385168152859087907f1810672a3dad8f995260ba0777de0e36f462980ce02a3951804f83aac9c2d455906020015b60405180910390a3505050505050565b610a736040518061020001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b506000828152609960209081526040808320848452825291829020825161020081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e8201546101c0820152600f9091015460ff1615156101e08201525b92915050565b610b8c6040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b506000838152609b6020908152604080832085845282528083206001600160a01b0385168452825291829020825160e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a082015260069091015460ff16151560c08201525b9392505050565b610c7360405180610120016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526098602090815260409182902082516101208101845281546001600160a01b039081168252600183015416928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015461010082015290565b60008581526098602052604090205485906001600160a01b03163314610d305760405162461bcd60e51b81526004016105ca90613684565b60008681526099602090815260408083208884529091529020600b810154855114610d9d5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420636f6c6c61626f7261746f7273206c69737400000000000060448201526064016105ca565b8251855114610dee5760405162461bcd60e51b815260206004820152601760248201527f61727261797327206c656e677468206d69736d6174636800000000000000000060448201526064016105ca565b80600a0154845114610e3b5760405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a59081bd89cd95c9d995c9cc81b1a5cdd60521b60448201526064016105ca565b6000610e4682612149565b6000898152609860205260409020909150610e61908261222f565b60008260050154118015610e76575060008651115b15610f75576000805b8551811015610f20576000868281518110610e9c57610e9c6136bb565b602002602001015111610ee75760405162461bcd60e51b8152602060048201526013602482015272696e76616c696420626f6e75732073636f726560681b60448201526064016105ca565b858181518110610ef957610ef96136bb565b602002602001015182610f0c9190613713565b915080610f18816136e7565b915050610e7f565b50620f42408114610f735760405162461bcd60e51b815260206004820152601c60248201527f696e636f727265637420746f74616c20626f6e75732073636f7265730000000060448201526064016105ca565b505b60005b8651811015610fd157610fbf8989898481518110610f9857610f986136bb565b6020026020010151888581518110610fb257610fb26136bb565b6020026020010151611eb7565b80610fc9816136e7565b915050610f78565b5060005b855181101561100757610ff589898884815181106107d1576107d16136bb565b80610fff816136e7565b915050610fd5565b508087897fca0673658d6abd07a7992b1c692276e95e5693b83c44ebcbc0f5661add8f274f60405160405180910390a45050505050505050565b60008381526098602052604090205483906001600160a01b031633146110795760405162461bcd60e51b81526004016105ca90613684565b60008251116110c35760405162461bcd60e51b8152602060048201526016602482015275656d707479206f62736572766572732061727261792160501b60448201526064016105ca565b60005b8251811015611140576000858152609c602090815260408083208784529091528120845161112e9290869085908110611101576111016136bb565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020612261565b80611138816136e7565b9150506110c6565b50815160008581526099602090815260408083208784529091529020611165916122c8565b82847f85572f85b2bc590a66fd61ccb26b098a3e1e5be48c230a5cc1f4c1d23603d1e1846040516111969190613726565b60405180910390a350505050565b6111ca604051806060016040528060008152602001600081526020016000151581525090565b506000928352609c602090815260408085209385529281528284206001600160a01b03929092168452908152918190208151606081018352815481526001820154938101939093526002015460ff1615159082015290565b61122a61230c565b6112346000612366565b565b60008481526098602052604090205484906001600160a01b0316331461126e5760405162461bcd60e51b81526004016105ca90613684565b60008351118061127f575060008251115b6112cb5760405162461bcd60e51b815260206004820152601760248201527f656d707479206f6273657276657273206172726179732100000000000000000060448201526064016105ca565b8251156113ae5760005b835181101561134f576000868152609c602090815260408083208884529091528120855161133d9290879085908110611310576113106136bb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206123b8565b80611347816136e7565b9150506112d5565b5082516000868152609960209081526040808320888452909152902061137491612405565b83857fb1cc0cc3834b00e41fce4d1b26e0683b2457f753ec2683b88651d001476a6e38856040516113a59190613726565b60405180910390a35b8151156114645760005b8251811015611405576000868152609c60209081526040808320888452909152812084516113f39290869085908110611101576111016136bb565b806113fd816136e7565b9150506113b8565b5081516000868152609960209081526040808320888452909152902061142a916122c8565b83857f85572f85b2bc590a66fd61ccb26b098a3e1e5be48c230a5cc1f4c1d23603d1e18460405161145b9190613726565b60405180910390a35b5050505050565b6000838152609c6020908152604080832085845282528083206001600160a01b0385168452909152812060018101541515806114a657508054155b806114b55750600281015460ff165b156114c4576000915050610c0b565b600085815260996020908152604080832087845290915290206114e690612497565b95945050505050565b6114f761230c565b6001600160a01b0381166115485760405162461bcd60e51b8152602060048201526018602482015277696e76616c6964207472656173757279206164647265737360401b60448201526064016105ca565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f2ac12ebf7dfd56173c73b2e43941f0faed1c3f7fb6f959191a4ab4bdd3d32e2191015b60405180910390a15050565b60008181526098602052604090205481906001600160a01b031633146115e25760405162461bcd60e51b81526004016105ca90613684565b6002606554036116045760405162461bcd60e51b81526004016105ca90613773565b60026065556000828152609860205260408120611620906124e9565b9050827f57854ae7fa7dd108a735bb91879e7ef3ba109e004981ca9d6df5f72510ddb7318260405161165491815260200190565b60405180910390a25050600160655550565b60008681526098602052604090205486906001600160a01b0316331461169e5760405162461bcd60e51b81526004016105ca90613684565b85600081116116bf5760405162461bcd60e51b81526004016105ca906137aa565b6002606554036116e15760405162461bcd60e51b81526004016105ca90613773565b600260655560008881526098602052604081209086611700898b613713565b61170a9190613713565b905061171682826125d8565b60006117238b60006126bc565b60008c8152609960209081526040808320848452909152902090915061174c818c8b8d8c61272b565b611789336097546001600160a01b031660646117698760056137cf565b61177391906137ee565b60018801546001600160a01b03169291906127b3565b8651156117eb57600089116117e05760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206f627365727665727320627564676574000000000000000060448201526064016105ca565b6117eb8c838961281e565b604080518c8152602081018c90529081018a905282908d907f078c5efce40e0c0891ebda17cfbf5d7cdd9d5eb4afb16375d39b8243451871e29060600160405180910390a35050600160655550505050505050505050565b60008381526098602052604090205483906001600160a01b0316331461187b5760405162461bcd60e51b81526004016105ca90613684565b61188684848461281e565b50505050565b600054610100900460ff16158080156118ac5750600054600160ff909116105b806118c65750303b1580156118c6575060005460ff166001145b6119295760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105ca565b6000805460ff19166001179055801561194c576000805461ff0019166101001790555b611954612989565b61195c6129b8565b6001600160a01b0382166119ad5760405162461bcd60e51b8152602060048201526018602482015277696e76616c6964207472656173757279206164647265737360401b60448201526064016105ca565b609780546001600160a01b0319166001600160a01b0384161790558015611a0a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161159e565b5050565b60008381526098602052604090205483906001600160a01b03163314611a465760405162461bcd60e51b81526004016105ca90613684565b6000848152609a6020908152604080832086845282528083206001600160a01b038616808552908352818420805460ff19166001179055878452609b835281842087855283528184209084529091529020611aa0906129e7565b60008481526099602090815260408083208684529091529020611ac290612a79565b6040516001600160a01b0383168152839085907f89d75bad6a27d516d326126cd95a5626e99ce9548579494bb6d51f59b9c8878390602001611196565b8060008111611b205760405162461bcd60e51b81526004016105ca906137aa565b600260655403611b425760405162461bcd60e51b81526004016105ca90613773565b60026065556001600160a01b038316611b955760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b60448201526064016105ca565b6000611b9f612ab1565b6000818152609860205260409020909150611bbb908585612b19565b807fe13f31eeb084676e55593cb99c5bef76fadde467d9bc2653f56a4c9c3f3302c633604080516001600160a01b0392831681529188166020830152810186905260600160405180910390a2505060016065555050565b60008481526098602052604090205484906001600160a01b03163314611c4a5760405162461bcd60e51b81526004016105ca90613684565b8160008111611c6b5760405162461bcd60e51b81526004016105ca906137aa565b6001600160a01b038416611cc15760405162461bcd60e51b815260206004820152601e60248201527f636f6c6c61626f7261746f7227732061646472657373206973207a65726f000060448201526064016105ca565b6000868152609b6020908152604080832088845282528083206001600160a01b03881684529091529020611cf59084612b61565b60008681526099602090815260408083208884529091529020611d189084612bd9565b604080516001600160a01b038616815260208101859052869188917f8aa39f8fa6c78a00b31a805b7955eb3e38d4cb7bd4d87c84655269141bd8477e91016109e1565b611d6361230c565b6001600160a01b038116611dc85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ca565b611dd181612366565b50565b8060008160020154118015611dee5750600681015460ff16155b611e0a5760405162461bcd60e51b81526004016105ca90613810565b50600601805460ff19166001179055565b600f830154839060ff16611e415760405162461bcd60e51b81526004016105ca9061383e565b82611e605781846001016000828254611e5a9190613700565b90915550505b600b84018054906000611e7283613867565b919050555050505050565b600f810154819060ff16611ea35760405162461bcd60e51b81526004016105ca9061383e565b5042600e820155600f01805460ff19169055565b6000848152609b6020908152604080832086845282528083206001600160a01b0386168452825280832087845260998352818420878552909252822060058101549192909115801590611f0a5750600084115b15611f6357600b8201546007830154611f24906001613713565b14611f4c57620f4240848360050154611f3d91906137cf565b611f4791906137ee565b611f60565b81600601548260050154611f609190613700565b90505b6000878152609b6020908152604080832089845282528083206001600160a01b03891684529091529020611f979082612ceb565b825460008881526099602090815260408083208a84529091529020611fbc9183612d84565b611fe585828560000154611fd09190613713565b60008a81526098602052604090209190612dce565b8254604080516001600160a01b038816815260208101929092528101829052869088907f53aa87b28abc70f0fb4d2402a35d5e4d91386b5b045ad43d598a715982e32d209060600160405180910390a350505050505050565b6000838152609c6020908152604080832085845282528083206001600160a01b0385168452909152902061207190612e00565b6000838152609960209081526040808320858452909152812061209390612497565b600085815260996020908152604080832087845290915290209091506120b99082612eb2565b60008481526098602052604090206120d2908383612dce565b604080516001600160a01b038416815260208101839052849186917ff791dbe60269baac78be1afe586f70aa816e7a19b3ff88e228ca638e41142dae9101611196565b808260030160008282546121299190613700565b909155505060078201805490600061214083613867565b91905055505050565b600f810154600090829060ff166121725760405162461bcd60e51b81526004016105ca9061383e565b82600d015483600b0154146121c95760405162461bcd60e51b815260206004820152601d60248201527f756e617070726f76656420636f6c6c61626f7261746f7273206c65667400000060448201526064016105ca565b600183015483546121da9190613700565b915082600a01546000036121fa5760038301546121f79083613713565b91505b82600b01546000036122185760058301546122159083613713565b91505b50426009830155600f909101805460ff1916905590565b801561224f57808260030160008282546122499190613700565b90915550505b600882018054906000612140836136e7565b80548190158015906122785750600281015460ff16155b6122b75760405162461bcd60e51b815260206004820152601060248201526f37379039bab1b41037b139b2b93b32b960811b60448201526064016105ca565b50600201805460ff19166001179055565b600f820154829060ff166122ee5760405162461bcd60e51b81526004016105ca9061383e565b8183600a0160008282546123029190613700565b9091555050505050565b6033546001600160a01b031633146112345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ca565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8054156124005760405162461bcd60e51b81526020600482015260166024820152751bd89cd95c9d995c88185b1c9958591e48185919195960521b60448201526064016105ca565b429055565b600f820154829060ff1661242b5760405162461bcd60e51b81526004016105ca9061383e565b600a8284600a015461243d9190613713565b11156124835760405162461bcd60e51b81526020600482015260156024820152741b585e081bd89cd95c9d995c9cc81c995858da1959605a1b60448201526064016105ca565b8183600a0160008282546123029190613713565b600080826004015483600301546124ae9190613700565b9050600083600a015484600301546124c691906137ee565b90506124d38160026137cf565b82106124df57806124e1565b815b949350505050565b6000816006015460001461253f5760405162461bcd60e51b815260206004820152601860248201527f616c72656164792066696e69736865642070726f6a656374000000000000000060448201526064016105ca565b81600801548260070154146125965760405162461bcd60e51b815260206004820152601860248201527f756e66696e6973686564207061636b61676573206c656674000000000000000060448201526064016105ca565b426006830155600382015460028301546000916125b291613700565b90508015610b445782546001840154610b44916001600160a01b03918216911683612ec6565b6006820154156126205760405162461bcd60e51b81526020600482015260136024820152721c1c9bda9958dd081a5cc8199a5b9a5cda1959606a1b60448201526064016105ca565b8082600301546126309190613713565b826002015410156126835760405162461bcd60e51b815260206004820152601e60248201527f6e6f7420656e6f7567682070726f6a65637420627564676574206c656674000060448201526064016105ca565b808260030160008282546126979190613713565b9250508190555060018260070160008282546126b39190613713565b90915550505050565b60006126c782612ef6565b600084815260996020908152604080832084845290915290206008015490915015610b445760405162461bcd60e51b8152602060048201526014602482015273191d5c1b1a58d85d19481c1858dad859d9481a5960621b60448201526064016105ca565b80600010801561273c5750600a8111155b6127885760405162461bcd60e51b815260206004820152601d60248201527f696e636f727265637420636f6c6c61626f7261746f7273206c696d697400000060448201526064016105ca565b92845560038401919091556005830155600c820155426008820155600f01805460ff19166001179055565b6040516001600160a01b03808516602483015283166044820152606481018290526118869085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612f4e565b60008151116128685760405162461bcd60e51b8152602060048201526016602482015275656d707479206f62736572766572732061727261792160501b60448201526064016105ca565b60005b81518110156129335760006001600160a01b0316828281518110612891576128916136bb565b60200260200101516001600160a01b0316036128ef5760405162461bcd60e51b815260206004820152601860248201527f7a65726f206f627365727665722773206164647265737321000000000000000060448201526064016105ca565b6000848152609c60209081526040808320868452909152812083516129219290859085908110611310576113106136bb565b8061292b816136e7565b91505061286b565b5080516000848152609960209081526040808320868452909152902061295891612405565b81837fb1cc0cc3834b00e41fce4d1b26e0683b2457f753ec2683b88651d001476a6e38836040516106549190613726565b600054610100900460ff166129b05760405162461bcd60e51b81526004016105ca9061387e565b611234613020565b600054610100900460ff166129df5760405162461bcd60e51b81526004016105ca9061387e565b611234613050565b8060008160020154118015612a015750600681015460ff16155b612a1d5760405162461bcd60e51b81526004016105ca90613810565b600382015415612a6f5760405162461bcd60e51b815260206004820152601d60248201527f636f6c6c61626f7261746f7220616c726561647920617070726f76656400000060448201526064016105ca565b5042600390910155565b600f810154819060ff16612a9f5760405162461bcd60e51b81526004016105ca9061383e565b600d82018054906000612140836136e7565b6000612abd6000612ef6565b60008181526098602052604090206005015490915015612b165760405162461bcd60e51b8152602060048201526014602482015273191d5c1b1a58d85d19481c1c9bda9958dd081a5960621b60448201526064016105ca565b90565b82546001600160a01b03199081163390811785556001850180546001600160a01b03861693168317905560028501839055426005860155612b5c919030846127b3565b505050565b600682015460ff1680612b7657506002820154155b612bc25760405162461bcd60e51b815260206004820152601a60248201527f636f6c6c61626f7261746f7220616c726561647920616464656400000000000060448201526064016105ca565b815560068101805460ff1916905542600290910155565b600f820154829060ff16612bff5760405162461bcd60e51b81526004016105ca9061383e565b818360010154612c0f9190613713565b83541015612c5f5760405162461bcd60e51b815260206004820152601e60248201527f6e6f7420656e6f756768207061636b61676520627564676574206c656674000060448201526064016105ca565b82600c015483600b015410612cb65760405162461bcd60e51b815260206004820152601b60248201527f636f6c6c61626f7261746f7273206c696d69742072656163686564000000000060448201526064016105ca565b81836001016000828254612cca9190613713565b9091555050600b83018054906000612ce1836136e7565b9190505550505050565b8160008160020154118015612d055750600681015460ff16155b612d215760405162461bcd60e51b81526004016105ca90613810565b600483015415612d695760405162461bcd60e51b81526020600482015260136024820152721c995dd85c9908185b1c9958591e481c185a59606a1b60448201526064016105ca565b4260048401558115612b5c5750600182015542600590910155565b81836002016000828254612d989190613713565b90915550508015612b5c5780836006016000828254612db79190613713565b9091555050600783018054906000612ce1836136e7565b80836004016000828254612de29190613713565b90915550506001830154612b5c906001600160a01b03168383612ec6565b8054819015801590612e175750600281015460ff16155b612e565760405162461bcd60e51b815260206004820152601060248201526f37379039bab1b41037b139b2b93b32b960811b60448201526064016105ca565b600182015415612ea85760405162461bcd60e51b815260206004820152601960248201527f6f627365727665722066656520616c726561647920706169640000000000000060448201526064016105ca565b5042600190910155565b808260040160008282546126b39190613713565b6040516001600160a01b038316602482015260448101829052612b5c90849063a9059cbb60e01b906064016127e7565b600033612f04600143613700565b60405160609290921b6bffffffffffffffffffffffff1916602083015240603482015260548101839052607401604051602081830303815290604052805190602001209050919050565b6000612fa3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661307e9092919063ffffffff16565b805190915015612b5c5780806020019051810190612fc191906138c9565b612b5c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105ca565b600054610100900460ff166130475760405162461bcd60e51b81526004016105ca9061387e565b61123433612366565b600054610100900460ff166130775760405162461bcd60e51b81526004016105ca9061387e565b6001606555565b60606124e18484600085856001600160a01b0385163b6130e05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105ca565b600080866001600160a01b031685876040516130fc919061390a565b60006040518083038185875af1925050503d8060008114613139576040519150601f19603f3d011682016040523d82523d6000602084013e61313e565b606091505b509150915061314e828286613159565b979650505050505050565b60608315613168575081610c0b565b8251156131785782518084602001fd5b8160405162461bcd60e51b81526004016105ca9190613926565b600080604083850312156131a557600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156131f3576131f36131b4565b604052919050565b600067ffffffffffffffff821115613215576132156131b4565b5060051b60200190565b80356001600160a01b038116811461323657600080fd5b919050565b600082601f83011261324c57600080fd5b8135602061326161325c836131fb565b6131ca565b82815260059290921b8401810191818101908684111561328057600080fd5b8286015b848110156132a2576132958161321f565b8352918301918301613284565b509695505050505050565b8015158114611dd157600080fd5b600080600080600060a086880312156132d357600080fd5b8535945060208601359350604086013567ffffffffffffffff808211156132f957600080fd5b61330589838a0161323b565b9450606088013591508082111561331b57600080fd5b506133288882890161323b565b9250506080860135613339816132ad565b809150509295509295909350565b6000806000806080858703121561335d57600080fd5b84359350602085013592506133746040860161321f565b91506060850135613384816132ad565b939692955090935050565b6000806000606084860312156133a457600080fd5b83359250602084013591506133bb6040850161321f565b90509250925092565b6000602082840312156133d657600080fd5b5035919050565b600080600080600060a086880312156133f557600080fd5b853594506020808701359450604087013567ffffffffffffffff8082111561341c57600080fd5b6134288a838b0161323b565b9550606089013591508082111561343e57600080fd5b61344a8a838b0161323b565b9450608089013591508082111561346057600080fd5b508701601f8101891361347257600080fd5b803561348061325c826131fb565b81815260059190911b8201830190838101908b83111561349f57600080fd5b928401925b828410156134bd578335825292840192908401906134a4565b80955050505050509295509295909350565b6000806000606084860312156134e457600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561350957600080fd5b6135158682870161323b565b9150509250925092565b6000806000806080858703121561353557600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561355b57600080fd5b6135678883890161323b565b9350606087013591508082111561357d57600080fd5b5061358a8782880161323b565b91505092959194509250565b6000602082840312156135a857600080fd5b610c0b8261321f565b60008060008060008060c087890312156135ca57600080fd5b863595506020870135945060408701359350606087013592506080870135915060a087013567ffffffffffffffff81111561360457600080fd5b61361089828a0161323b565b9150509295509295509295565b6000806040838503121561363057600080fd5b6136398361321f565b946020939093013593505050565b6000806000806080858703121561365d57600080fd5b84359350602085013592506136746040860161321f565b9396929550929360600135925050565b6020808252601f908201527f63616c6c6572206973206e6f742070726f6a65637420696e69746961746f7200604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016136f9576136f96136d1565b5060010190565b81810381811115610b4457610b446136d1565b80820180821115610b4457610b446136d1565b6020808252825182820181905260009190848201906040850190845b818110156137675783516001600160a01b031683529284019291840191600101613742565b50909695505050505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252600b908201526a16995c9bc8185b5bdd5b9d60aa1b604082015260600190565b60008160001904831182151516156137e9576137e96136d1565b500290565b60008261380b57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526014908201527337379039bab1b41031b7b63630b137b930ba37b960611b604082015260600190565b6020808252600f908201526e6e6f2073756368207061636b61676560881b604082015260600190565b600081613876576138766136d1565b506000190190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156138db57600080fd5b8151610c0b816132ad565b60005b838110156139015781810151838201526020016138e9565b50506000910152565b6000825161391c8184602087016138e6565b9190910192915050565b60208152600082518060208401526139458160408501602087016138e6565b601f01601f1916919091016040019291505056fea26469706673582212206fbfdd8250baaf0738cdc9fbe9dcc1cc69f53e27eb017c3706658ddfb1219f8d64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/TokenFactory.sol:TokenFactory": {"srcmap": "619:2543:39:-:0;;;;;;;;;;;;;;;;;;;", "srcmap-runtime": "619:2543:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1524:293;;;;;;:::i;:::-;;:::i;:::-;;2071:101:0;;;:::i;2751:409:39:-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2170:32:50;;;2152:51;;2140:2;2125:18;2751:409:39;;;;;;;1441:85:0;1513:6;;-1:-1:-1;;;;;1513:6:0;1441:85;;776:26:39;;;;;-1:-1:-1;;;;;776:26:39;;;934:35;;;;;-1:-1:-1;;;;;934:35:39;;;1112:254;;;;;;:::i;:::-;;:::i;2108:290::-;;;;;;:::i;:::-;;:::i;2321:198:0:-;;;;;;:::i;:::-;;:::i;1524:293:39:-;1334:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;1607:26:39;::::1;1599:71;;;::::0;-1:-1:-1;;;1599:71:39;;3530:2:50;1599:71:39::1;::::0;::::1;3512:21:50::0;;;3549:18;;;3542:30;3608:34;3588:18;;;3581:62;3660:18;;1599:71:39::1;;;;;;;;;1705:11;::::0;;-1:-1:-1;;;;;1726:26:39;;::::1;-1:-1:-1::0;;;;;;1726:26:39;::::1;::::0;::::1;::::0;;;1767:43:::1;::::0;1705:11;::::1;::::0;1726:26;1705:11;;1767:43:::1;::::0;1680:22:::1;::::0;1767:43:::1;1589:228;1524:293:::0;:::o;2071:101:0:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2751:409:39:-;2879:11;;2852:7;;-1:-1:-1;;;;;2879:11:39;2871:70;;;;-1:-1:-1;;;2871:70:39;;3891:2:50;2871:70:39;;;3873:21:50;;;3910:18;;;3903:30;3969:34;3949:18;;;3942:62;4021:18;;2871:70:39;3689:356:50;2871:70:39;3001:17;;2951:15;;2980:40;;-1:-1:-1;;;;;3001:17:39;2980:12;:40::i;:::-;3047:11;;3031:50;;-1:-1:-1;;;3031:50:39;;2951:70;;-1:-1:-1;;;;;;3031:15:39;;;;;;:50;;3047:11;;3060:5;;3067:7;;3076:4;;3031:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3097:26:39;;-1:-1:-1;;;;;3097:26:39;;;-1:-1:-1;3097:26:39;;-1:-1:-1;3097:26:39;;;3148:4;2751:409;-1:-1:-1;;;;2751:409:39:o;1112:254::-;3111:19:1;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:1;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:1;1476:19:11;:23;;;3219:66:1;;-1:-1:-1;3268:12:1;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:1;;5330:2:50;3157:201:1;;;5312:21:50;5369:2;5349:18;;;5342:30;5408:34;5388:18;;;5381:62;-1:-1:-1;;;5459:18:50;;;5452:44;5513:19;;3157:201:1;5128:410:50;3157:201:1;3368:12;:16;;-1:-1:-1;;3368:16:1;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:1;;;;;3394:65;1185:16:39::1;:14;:16::i;:::-;1220:68;-1:-1:-1::0;;;;;1220:38:39;::::1;-1:-1:-1::0;;;1220:38:39::1;:68::i;:::-;1212:106;;;::::0;-1:-1:-1;;;1212:106:39;;5745:2:50;1212:106:39::1;::::0;::::1;5727:21:50::0;5784:2;5764:18;;;5757:30;5823:27;5803:18;;;5796:55;5868:18;;1212:106:39::1;5543:349:50::0;1212:106:39::1;1328:17;:31:::0;;-1:-1:-1;;;;;;1328:31:39::1;-1:-1:-1::0;;;;;1328:31:39;::::1;;::::0;;3479:99:1;;;;3529:5;3513:21;;-1:-1:-1;;3513:21:1;;;3553:14;;-1:-1:-1;6049:36:50;;3553:14:1;;6037:2:50;6022:18;3553:14:1;;;;;;;3479:99;3101:483;1112:254:39;:::o;2108:290::-;2243:14;2299:10;2311:12;2325:5;2332:7;2286:54;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2269:72;;2378:12;2370:6;-1:-1:-1;;;;;2356:35:39;;;;;;;;;;;2108:290;;;;;:::o;2321:198:0:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:0;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:0;;6856:2:50;2401:73:0::1;::::0;::::1;6838:21:50::0;6895:2;6875:18;;;6868:30;6934:34;6914:18;;;6907:62;-1:-1:-1;;;6985:18:50;;;6978:36;7031:19;;2401:73:0::1;6654:402:50::0;2401:73:0::1;2484:28;2503:8;2484:18;:28::i;:::-;2321:198:::0;:::o;1599:130::-;1513:6;;-1:-1:-1;;;;;1513:6:0;929:10:12;1662:23:0;1654:68;;;;-1:-1:-1;;;1654:68:0;;7263:2:50;1654:68:0;;;7245:21:50;;;7282:18;;;7275:30;7341:34;7321:18;;;7314:62;7393:18;;1654:68:0;7061:356:50;2673:187:0;2765:6;;;-1:-1:-1;;;;;2781:17:0;;;-1:-1:-1;;;;;;2781:17:0;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;973:558:18:-;1030:16;1141:4;1135:11;-1:-1:-1;;;1166:3:18;1159:79;1284:14;1278:4;1274:25;1267:4;1262:3;1258:14;1251:49;-1:-1:-1;;;1329:4:18;1324:3;1320:14;1313:90;1443:4;1438:3;1435:1;1428:20;1416:32;-1:-1:-1;;;;;;;1475:22:18;;1467:57;;;;-1:-1:-1;;;1467:57:18;;7624:2:50;1467:57:18;;;7606:21:50;7663:2;7643:18;;;7636:30;-1:-1:-1;;;7682:18:50;;;7675:52;7744:18;;1467:57:18;7422:346:50;1467:57:18;973:558;;;:::o;1003:95:0:-;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1065:26:0::1;:24;:26::i;1366:274:14:-:0;1453:4;1560:23;1575:7;1560:14;:23::i;:::-;:73;;;;;1587:46;1612:7;1621:11;1587:24;:46::i;:::-;1553:80;1366:274;-1:-1:-1;;;1366:274:14:o;1104:111:0:-;4910:13:1;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:1;;;;;;;:::i;:::-;1176:32:0::1;929:10:12::0;1176:18:0::1;:32::i;726:422:14:-:0;790:4;997:71;1022:7;-1:-1:-1;;;997:24:14;:71::i;:::-;:144;;;;-1:-1:-1;1085:56:14;1110:7;-1:-1:-1;;;;;;1085:24:14;:56::i;:::-;1084:57;997:144;978:163;726:422;-1:-1:-1;;726:422:14:o;4256:649::-;4418:82;;;-1:-1:-1;;;;;;8347:33:50;;4418:82:14;;;;8329:52:50;;;;4418:82:14;;;;;;;;;;8302:18:50;;;;4418:82:14;;;;;;;;;-1:-1:-1;;;;;4418:82:14;-1:-1:-1;;;4418:82:14;;;4708:20;;4349:4;;4418:82;4349:4;;;;;;4418:82;4349:4;;4708:20;4673:7;4666:5;4655:86;4644:97;;4768:16;4754:30;;4818:4;4812:11;4797:26;;4850:7;:29;;;;;4875:4;4861:10;:18;;4850:29;:48;;;;;4897:1;4883:11;:15;4850:48;4843:55;4256:649;-1:-1:-1;;;;;;;4256:649:14:o;-1:-1:-1:-;;;;;;;;:::o;14:131:50:-;-1:-1:-1;;;;;89:31:50;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:127::-;463:10;458:3;454:20;451:1;444:31;494:4;491:1;484:15;518:4;515:1;508:15;534:719;577:5;630:3;623:4;615:6;611:17;607:27;597:55;;648:1;645;638:12;597:55;684:6;671:20;710:18;747:2;743;740:10;737:36;;;753:18;;:::i;:::-;828:2;822:9;796:2;882:13;;-1:-1:-1;;878:22:50;;;902:2;874:31;870:40;858:53;;;926:18;;;946:22;;;923:46;920:72;;;972:18;;:::i;:::-;1012:10;1008:2;1001:22;1047:2;1039:6;1032:18;1093:3;1086:4;1081:2;1073:6;1069:15;1065:26;1062:35;1059:55;;;1110:1;1107;1100:12;1059:55;1174:2;1167:4;1159:6;1155:17;1148:4;1140:6;1136:17;1123:54;1221:1;1214:4;1209:2;1201:6;1197:15;1193:26;1186:37;1241:6;1232:15;;;;;;534:719;;;;:::o;1258:743::-;1365:6;1373;1381;1434:2;1422:9;1413:7;1409:23;1405:32;1402:52;;;1450:1;1447;1440:12;1402:52;1490:9;1477:23;1519:18;1560:2;1552:6;1549:14;1546:34;;;1576:1;1573;1566:12;1546:34;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1702:2;1691:9;1687:18;1674:32;1658:48;;1731:2;1721:8;1718:16;1715:36;;;1747:1;1744;1737:12;1715:36;1770:52;1814:7;1803:8;1792:9;1788:24;1770:52;:::i;:::-;1760:62;;1875:2;1864:9;1860:18;1847:32;1831:48;;1904:2;1894:8;1891:16;1888:36;;;1920:1;1917;1910:12;1888:36;;1943:52;1987:7;1976:8;1965:9;1961:24;1943:52;:::i;:::-;1933:62;;;1258:743;;;;;:::o;2712:611::-;2809:6;2817;2825;2878:2;2866:9;2857:7;2853:23;2849:32;2846:52;;;2894:1;2891;2884:12;2846:52;2930:9;2917:23;2907:33;;2991:2;2980:9;2976:18;2963:32;3014:18;3055:2;3047:6;3044:14;3041:34;;;3071:1;3068;3061:12;4050:423;4092:3;4130:5;4124:12;4157:6;4152:3;4145:19;4182:1;4192:162;4206:6;4203:1;4200:13;4192:162;;;4268:4;4324:13;;;4320:22;;4314:29;4296:11;;;4292:20;;4285:59;4221:12;4192:162;;;4196:3;4399:1;4392:4;4383:6;4378:3;4374:16;4370:27;4363:38;4462:4;4455:2;4451:7;4446:2;4438:6;4434:15;4430:29;4425:3;4421:39;4417:50;4410:57;;;4050:423;;;;:::o;4478:645::-;-1:-1:-1;;;;;4751:32:50;;4733:51;;4820:3;4815:2;4800:18;;4793:31;;;-1:-1:-1;;4847:46:50;;4873:19;;4865:6;4847:46;:::i;:::-;4941:9;4933:6;4929:22;4924:2;4913:9;4909:18;4902:50;4975:33;5001:6;4993;4975:33;:::i;:::-;4961:47;;5056:9;5048:6;5044:22;5039:2;5028:9;5024:18;5017:50;5084:33;5110:6;5102;5084:33;:::i;6096:553::-;6378:1;6374;6369:3;6365:11;6361:19;6353:6;6349:32;6338:9;6331:51;6418:6;6413:2;6402:9;6398:18;6391:34;6461:3;6456:2;6445:9;6441:18;6434:31;6312:4;6488:46;6529:3;6518:9;6514:19;6506:6;6488:46;:::i;:::-;6582:9;6574:6;6570:22;6565:2;6554:9;6550:18;6543:50;6610:33;6636:6;6628;6610:33;:::i;7773:407::-;7975:2;7957:21;;;8014:2;7994:18;;;7987:30;8053:34;8048:2;8033:18;;8026:62;-1:-1:-1;;;8119:2:50;8104:18;;8097:41;8170:3;8155:19;;7773:407::o", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"}],\"name\":\"DeployedNFT\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"name\":\"DeployedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":true,\"internalType\":\"address\",\"name\":\"oldLearnToEarn\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newLearnToEarn\",\"type\":\"address\"}],\"name\":\"SetLearnToEarn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"deployNFT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"deployToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractINFTReward\",\"name\":\"_nftRewared\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"learnToEarn\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_learnToEarn\",\"type\":\"address\"}],\"name\":\"setLearnToEarn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"templateNFTReward\",\"outputs\":[{\"internalType\":\"contractINFTReward\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "608060405234801561001057600080fd5b50611a28806100206000396000f3fe60806040523480156200001157600080fd5b50600436106200009f5760003560e01c8063a4e8aaae116200006e578063a4e8aaae146200010c578063c455ed401462000120578063c4d66de81462000134578063da68ed12146200014b578063f2fde38b146200016257600080fd5b80633025928f14620000a4578063715018a614620000bd5780637309fe2214620000c75780638da5cb5b14620000fa575b600080fd5b620000bb620000b5366004620008d1565b62000179565b005b620000bb62000231565b620000de620000d83660046200099c565b62000249565b6040516001600160a01b03909116815260200160405180910390f35b6033546001600160a01b0316620000de565b606554620000de906001600160a01b031681565b606654620000de906001600160a01b031681565b620000bb62000145366004620008d1565b6200036b565b620000de6200015c36600462000a2e565b6200050b565b620000bb62000173366004620008d1565b6200058c565b620001836200060b565b6001600160a01b038116620001df5760405162461bcd60e51b815260206004820181905260248201527f6c6561726e546f4561726e2061646472657373206973206e6f742076616c696460448201526064015b60405180910390fd5b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f448700cd409e255b87a8a438a7cd86b88452daafacabc31ab74b8da7b039a47890600090a35050565b6200023b6200060b565b62000247600062000667565b565b6065546000906001600160a01b0316620002a65760405162461bcd60e51b815260206004820181905260248201527f4c6561726e546f4561726e2061646472657373206973206e6f742076616c69646044820152606401620001d6565b606654600090620002c0906001600160a01b0316620006b9565b606554604051635f1e6f6d60e01b81529192506001600160a01b0380841692635f1e6f6d92620002fb92169089908990899060040162000aac565b600060405180830381600087803b1580156200031657600080fd5b505af11580156200032b573d6000803e3d6000fd5b50506040516001600160a01b03841692507ff784f9219f2a6abce53e3cbad9cdb6703c11c16fe0fb6e2525b74f9a04fed14c9150600090a2949350505050565b600054610100900460ff16158080156200038c5750600054600160ff909116105b80620003a85750303b158015620003a8575060005460ff166001145b6200040d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620001d6565b6000805460ff19166001179055801562000431576000805461ff0019166101001790555b6200043b62000758565b620004576001600160a01b03831663357c172f60e01b6200078c565b620004a55760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964204e46545265776172642061646472657373000000000000006044820152606401620001d6565b606680546001600160a01b0319166001600160a01b038416179055801562000507576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000338484846040516200051f90620008ad565b6200052e949392919062000afc565b604051809103906000f0801580156200054b573d6000803e3d6000fd5b50905083816001600160a01b03167f9d4a605126592dbb92f903ac98e8c937282fbe6325f14bf4d5eacf3544edc35c60405160405180910390a39392505050565b620005966200060b565b6001600160a01b038116620005fd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620001d6565b620006088162000667565b50565b6033546001600160a01b03163314620002475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620001d6565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116620007535760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401620001d6565b919050565b600054610100900460ff16620007825760405162461bcd60e51b8152600401620001d69062000b39565b62000247620007b4565b60006200079983620007e9565b8015620007ad5750620007ad838362000822565b9392505050565b600054610100900460ff16620007de5760405162461bcd60e51b8152600401620001d69062000b39565b620002473362000667565b6000620007fe826301ffc9a760e01b62000822565b80156200081c57506200081a826001600160e01b031962000822565b155b92915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801562000895575060208210155b8015620008a25750600081115b979650505050505050565b610e6e8062000b8583390190565b6001600160a01b03811681146200060857600080fd5b600060208284031215620008e457600080fd5b8135620007ad81620008bb565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200091957600080fd5b813567ffffffffffffffff80821115620009375762000937620008f1565b604051601f8301601f19908116603f01168101908282118183101715620009625762000962620008f1565b816040528381528660208588010111156200097c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215620009b257600080fd5b833567ffffffffffffffff80821115620009cb57600080fd5b620009d98783880162000907565b94506020860135915080821115620009f057600080fd5b620009fe8783880162000907565b9350604086013591508082111562000a1557600080fd5b5062000a248682870162000907565b9150509250925092565b60008060006060848603121562000a4457600080fd5b83359250602084013567ffffffffffffffff80821115620009f057600080fd5b6000815180845260005b8181101562000a8c5760208185018101518683018201520162000a6e565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038516815260806020820181905260009062000ad29083018662000a64565b828103604084015262000ae6818662000a64565b90508281036060840152620008a2818562000a64565b60018060a01b038516815283602082015260806040820152600062000b25608083018562000a64565b8281036060840152620008a2818562000a64565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe60806040523480156200001157600080fd5b5060405162000e6e38038062000e6e833981016040819052620000349162000224565b8181600362000044838262000346565b50600462000053828262000346565b5050506200006884846200007260201b60201c565b505050506200043a565b6001600160a01b038216620000cd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000e1919062000412565b90915550506001600160a01b038216600090815260208190526040812080548392906200011090849062000412565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200018757600080fd5b81516001600160401b0380821115620001a457620001a46200015f565b604051601f8301601f19908116603f01168101908282118183101715620001cf57620001cf6200015f565b81604052838152602092508683858801011115620001ec57600080fd5b600091505b83821015620002105785820183015181830184015290820190620001f1565b600093810190920192909252949350505050565b600080600080608085870312156200023b57600080fd5b84516001600160a01b03811681146200025357600080fd5b6020860151604087015191955093506001600160401b03808211156200027857600080fd5b620002868883890162000175565b935060608701519150808211156200029d57600080fd5b50620002ac8782880162000175565b91505092959194509250565b600181811c90821680620002cd57607f821691505b602082108103620002ee57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200015a57600081815260208120601f850160051c810160208610156200031d5750805b601f850160051c820191505b818110156200033e5782815560010162000329565b505050505050565b81516001600160401b038111156200036257620003626200015f565b6200037a81620003738454620002b8565b84620002f4565b602080601f831160018114620003b25760008415620003995750858301515b600019600386901b1c1916600185901b1785556200033e565b600085815260208120601f198616915b82811015620003e357888601518255948401946001909101908401620003c2565b5085821015620004025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200043457634e487b7160e01b600052601160045260246000fd5b92915050565b610a24806200044a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806342966c681161007157806342966c681461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce919061083a565b60405180910390f35b6100ea6100e53660046108a4565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046108ce565b61026c565b604051601281526020016100ce565b6100ea61013c3660046108a4565b610290565b61015461014f36600461090a565b6102b2565b005b6100fe610164366004610923565b6001600160a01b031660009081526020819052604090205490565b6100c16102bf565b6100ea6101953660046108a4565b6102ce565b6100ea6101a83660046108a4565b61034e565b6100fe6101bb366004610945565b61035c565b6060600380546101cf90610978565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb90610978565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610387565b60019150505b92915050565b60003361027a8582856104ac565b610285858585610526565b506001949350505050565b6000336102608185856102a3838361035c565b6102ad91906109c8565b610387565b6102bc33826106f4565b50565b6060600480546101cf90610978565b600033816102dc828661035c565b9050838110156103415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102858286868403610387565b600033610260818585610526565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610338565b6001600160a01b03821661044a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610338565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006104b8848461035c565b9050600019811461052057818110156105135760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610338565b6105208484848403610387565b50505050565b6001600160a01b03831661058a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610338565b6001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610338565b6001600160a01b038316600090815260208190526040902054818110156106645760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610338565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061069b9084906109c8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e791815260200190565b60405180910390a3610520565b6001600160a01b0382166107545760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610338565b6001600160a01b038216600090815260208190526040902054818110156107c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610338565b6001600160a01b03831660009081526020819052604081208383039055600280548492906107f79084906109db565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161049f565b600060208083528351808285015260005b818110156108675785810183015185820160400152820161084b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089f57600080fd5b919050565b600080604083850312156108b757600080fd5b6108c083610888565b946020939093013593505050565b6000806000606084860312156108e357600080fd5b6108ec84610888565b92506108fa60208501610888565b9150604084013590509250925092565b60006020828403121561091c57600080fd5b5035919050565b60006020828403121561093557600080fd5b61093e82610888565b9392505050565b6000806040838503121561095857600080fd5b61096183610888565b915061096f60208401610888565b90509250929050565b600181811c9082168061098c57607f821691505b6020821081036109ac57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610266576102666109b2565b81810381811115610266576102666109b256fea26469706673582212206f580637e2726840ddefd5197269032aa3ba94a5d49ec58f0f176cc76bec3ecd64736f6c63430008100033a2646970667358221220a2972ed69cd8a17cd17a6f8d32a9251583a42610dac37f45a11a5acd0f363cf764736f6c63430008100033", "bin-runtime": "60806040523480156200001157600080fd5b50600436106200009f5760003560e01c8063a4e8aaae116200006e578063a4e8aaae146200010c578063c455ed401462000120578063c4d66de81462000134578063da68ed12146200014b578063f2fde38b146200016257600080fd5b80633025928f14620000a4578063715018a614620000bd5780637309fe2214620000c75780638da5cb5b14620000fa575b600080fd5b620000bb620000b5366004620008d1565b62000179565b005b620000bb62000231565b620000de620000d83660046200099c565b62000249565b6040516001600160a01b03909116815260200160405180910390f35b6033546001600160a01b0316620000de565b606554620000de906001600160a01b031681565b606654620000de906001600160a01b031681565b620000bb62000145366004620008d1565b6200036b565b620000de6200015c36600462000a2e565b6200050b565b620000bb62000173366004620008d1565b6200058c565b620001836200060b565b6001600160a01b038116620001df5760405162461bcd60e51b815260206004820181905260248201527f6c6561726e546f4561726e2061646472657373206973206e6f742076616c696460448201526064015b60405180910390fd5b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f448700cd409e255b87a8a438a7cd86b88452daafacabc31ab74b8da7b039a47890600090a35050565b6200023b6200060b565b62000247600062000667565b565b6065546000906001600160a01b0316620002a65760405162461bcd60e51b815260206004820181905260248201527f4c6561726e546f4561726e2061646472657373206973206e6f742076616c69646044820152606401620001d6565b606654600090620002c0906001600160a01b0316620006b9565b606554604051635f1e6f6d60e01b81529192506001600160a01b0380841692635f1e6f6d92620002fb92169089908990899060040162000aac565b600060405180830381600087803b1580156200031657600080fd5b505af11580156200032b573d6000803e3d6000fd5b50506040516001600160a01b03841692507ff784f9219f2a6abce53e3cbad9cdb6703c11c16fe0fb6e2525b74f9a04fed14c9150600090a2949350505050565b600054610100900460ff16158080156200038c5750600054600160ff909116105b80620003a85750303b158015620003a8575060005460ff166001145b6200040d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620001d6565b6000805460ff19166001179055801562000431576000805461ff0019166101001790555b6200043b62000758565b620004576001600160a01b03831663357c172f60e01b6200078c565b620004a55760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964204e46545265776172642061646472657373000000000000006044820152606401620001d6565b606680546001600160a01b0319166001600160a01b038416179055801562000507576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000338484846040516200051f90620008ad565b6200052e949392919062000afc565b604051809103906000f0801580156200054b573d6000803e3d6000fd5b50905083816001600160a01b03167f9d4a605126592dbb92f903ac98e8c937282fbe6325f14bf4d5eacf3544edc35c60405160405180910390a39392505050565b620005966200060b565b6001600160a01b038116620005fd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620001d6565b620006088162000667565b50565b6033546001600160a01b03163314620002475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620001d6565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116620007535760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401620001d6565b919050565b600054610100900460ff16620007825760405162461bcd60e51b8152600401620001d69062000b39565b62000247620007b4565b60006200079983620007e9565b8015620007ad5750620007ad838362000822565b9392505050565b600054610100900460ff16620007de5760405162461bcd60e51b8152600401620001d69062000b39565b620002473362000667565b6000620007fe826301ffc9a760e01b62000822565b80156200081c57506200081a826001600160e01b031962000822565b155b92915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801562000895575060208210155b8015620008a25750600081115b979650505050505050565b610e6e8062000b8583390190565b6001600160a01b03811681146200060857600080fd5b600060208284031215620008e457600080fd5b8135620007ad81620008bb565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200091957600080fd5b813567ffffffffffffffff80821115620009375762000937620008f1565b604051601f8301601f19908116603f01168101908282118183101715620009625762000962620008f1565b816040528381528660208588010111156200097c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215620009b257600080fd5b833567ffffffffffffffff80821115620009cb57600080fd5b620009d98783880162000907565b94506020860135915080821115620009f057600080fd5b620009fe8783880162000907565b9350604086013591508082111562000a1557600080fd5b5062000a248682870162000907565b9150509250925092565b60008060006060848603121562000a4457600080fd5b83359250602084013567ffffffffffffffff80821115620009f057600080fd5b6000815180845260005b8181101562000a8c5760208185018101518683018201520162000a6e565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038516815260806020820181905260009062000ad29083018662000a64565b828103604084015262000ae6818662000a64565b90508281036060840152620008a2818562000a64565b60018060a01b038516815283602082015260806040820152600062000b25608083018562000a64565b8281036060840152620008a2818562000a64565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe60806040523480156200001157600080fd5b5060405162000e6e38038062000e6e833981016040819052620000349162000224565b8181600362000044838262000346565b50600462000053828262000346565b5050506200006884846200007260201b60201c565b505050506200043a565b6001600160a01b038216620000cd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000e1919062000412565b90915550506001600160a01b038216600090815260208190526040812080548392906200011090849062000412565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200018757600080fd5b81516001600160401b0380821115620001a457620001a46200015f565b604051601f8301601f19908116603f01168101908282118183101715620001cf57620001cf6200015f565b81604052838152602092508683858801011115620001ec57600080fd5b600091505b83821015620002105785820183015181830184015290820190620001f1565b600093810190920192909252949350505050565b600080600080608085870312156200023b57600080fd5b84516001600160a01b03811681146200025357600080fd5b6020860151604087015191955093506001600160401b03808211156200027857600080fd5b620002868883890162000175565b935060608701519150808211156200029d57600080fd5b50620002ac8782880162000175565b91505092959194509250565b600181811c90821680620002cd57607f821691505b602082108103620002ee57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200015a57600081815260208120601f850160051c810160208610156200031d5750805b601f850160051c820191505b818110156200033e5782815560010162000329565b505050505050565b81516001600160401b038111156200036257620003626200015f565b6200037a81620003738454620002b8565b84620002f4565b602080601f831160018114620003b25760008415620003995750858301515b600019600386901b1c1916600185901b1785556200033e565b600085815260208120601f198616915b82811015620003e357888601518255948401946001909101908401620003c2565b5085821015620004025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200043457634e487b7160e01b600052601160045260246000fd5b92915050565b610a24806200044a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806342966c681161007157806342966c681461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce919061083a565b60405180910390f35b6100ea6100e53660046108a4565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046108ce565b61026c565b604051601281526020016100ce565b6100ea61013c3660046108a4565b610290565b61015461014f36600461090a565b6102b2565b005b6100fe610164366004610923565b6001600160a01b031660009081526020819052604090205490565b6100c16102bf565b6100ea6101953660046108a4565b6102ce565b6100ea6101a83660046108a4565b61034e565b6100fe6101bb366004610945565b61035c565b6060600380546101cf90610978565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb90610978565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610387565b60019150505b92915050565b60003361027a8582856104ac565b610285858585610526565b506001949350505050565b6000336102608185856102a3838361035c565b6102ad91906109c8565b610387565b6102bc33826106f4565b50565b6060600480546101cf90610978565b600033816102dc828661035c565b9050838110156103415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102858286868403610387565b600033610260818585610526565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610338565b6001600160a01b03821661044a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610338565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006104b8848461035c565b9050600019811461052057818110156105135760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610338565b6105208484848403610387565b50505050565b6001600160a01b03831661058a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610338565b6001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610338565b6001600160a01b038316600090815260208190526040902054818110156106645760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610338565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061069b9084906109c8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e791815260200190565b60405180910390a3610520565b6001600160a01b0382166107545760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610338565b6001600160a01b038216600090815260208190526040902054818110156107c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610338565b6001600160a01b03831660009081526020819052604081208383039055600280548492906107f79084906109db565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161049f565b600060208083528351808285015260005b818110156108675785810183015185820160400152820161084b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089f57600080fd5b919050565b600080604083850312156108b757600080fd5b6108c083610888565b946020939093013593505050565b6000806000606084860312156108e357600080fd5b6108ec84610888565b92506108fa60208501610888565b9150604084013590509250925092565b60006020828403121561091c57600080fd5b5035919050565b60006020828403121561093557600080fd5b61093e82610888565b9392505050565b6000806040838503121561095857600080fd5b61096183610888565b915061096f60208401610888565b90509250929050565b600181811c9082168061098c57607f821691505b6020821081036109ac57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610266576102666109b2565b81810381811115610266576102666109b256fea26469706673582212206f580637e2726840ddefd5197269032aa3ba94a5d49ec58f0f176cc76bec3ecd64736f6c63430008100033a2646970667358221220a2972ed69cd8a17cd17a6f8d32a9251583a42610dac37f45a11a5acd0f363cf764736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/ILearnToEarn.sol:ILearnToEarn": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"budget\",\"type\":\"uint256\"}],\"name\":\"AddedBudget\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"learner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rewardAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nftIds\",\"type\":\"uint256[]\"}],\"name\":\"ClaimedReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"learner\",\"type\":\"address\"}],\"name\":\"CompletedCourse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeStarted\",\"type\":\"uint256\"}],\"name\":\"CreatedCourse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"RemovedCourse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"courseId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawnBudget\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_budget\",\"type\":\"uint256\"}],\"name\":\"addBudget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_learner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_timeStarted\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_timeCompleted\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"_nftIds\",\"type\":\"uint256[]\"}],\"name\":\"completeCourse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rewardAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_budget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_bonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_timeStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_timeEndBonus\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isUsingDuration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_isBonusToken\",\"type\":\"bool\"}],\"name\":\"createCourse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_courseId\",\"type\":\"bytes32\"}],\"name\":\"withdrawBudget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/INFTReward.sol:INFTReward": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_learnToEarn\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/IReBakedDAO.sol:IReBakedDAO": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mgp\",\"type\":\"uint256\"}],\"name\":\"AddedCollaborator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"observers\",\"type\":\"address[]\"}],\"name\":\"AddedObservers\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator\",\"type\":\"address\"}],\"name\":\"ApprovedCollaborator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"}],\"name\":\"ApprovedProject\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"revertedBudget\",\"type\":\"uint256\"}],\"name\":\"CanceledPackage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"budget\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"observerBudget\",\"type\":\"uint256\"}],\"name\":\"CreatedPackage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"budget\",\"type\":\"uint256\"}],\"name\":\"CreatedProject\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"budgetLeft\",\"type\":\"uint256\"}],\"name\":\"FinishedPackage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"budgetLeft\",\"type\":\"uint256\"}],\"name\":\"FinishedProject\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mgp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bonus\",\"type\":\"uint256\"}],\"name\":\"PaidCollaboratorRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaidObserverFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId_\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId_\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collaborator_\",\"type\":\"address\"}],\"name\":\"RemovedCollaborator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"packageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"observers\",\"type\":\"address[]\"}],\"name\":\"RemovedObservers\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"}],\"name\":\"StartedProject\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldTreasury\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTreasury\",\"type\":\"address\"}],\"name\":\"UpdatedTreasury\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_collaborator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_mgp\",\"type\":\"uint256\"}],\"name\":\"addCollaborator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"}],\"name\":\"addObservers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_collaborator\",\"type\":\"address\"}],\"name\":\"approveCollaborator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_collaborators\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"_workStarted\",\"type\":\"bool\"}],\"name\":\"cancelPackage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_budget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_bonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_observerBudget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_collaboratorsLimit\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"}],\"name\":\"createPackage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"budget_\",\"type\":\"uint256\"}],\"name\":\"createProject\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_collaborators\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_scores\",\"type\":\"uint256[]\"}],\"name\":\"finishPackage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"}],\"name\":\"finishProject\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_collaborator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_shouldPayMgp\",\"type\":\"bool\"}],\"name\":\"removeCollaborator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_observers\",\"type\":\"address[]\"}],\"name\":\"removeObservers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"}],\"name\":\"selfRemove\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_packageId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_observersIn\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_observersOut\",\"type\":\"address[]\"}],\"name\":\"updateObservers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"treasury_\",\"type\":\"address\"}],\"name\":\"updateTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/interfaces/ITokenFactory.sol:ITokenFactory": {"srcmap": "", "srcmap-runtime": "", "abi": "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"}],\"name\":\"DeployedNFT\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"name\":\"DeployedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldLearnToEarn\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newLearnToEarn\",\"type\":\"address\"}],\"name\":\"SetLearnToEarn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"deployNFT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"deployToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", "bin": "", "bin-runtime": "", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/CollaboratorLibrary.sol:CollaboratorLibrary": {"srcmap": "103:1996:44:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;103:1996:44;;;;;;;;;;;;;;;;;", "srcmap-runtime": "103:1996:44:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122069b082de11cf28234a75c60fa34e73e90f09ac864a4cea3c8f02e6487b74fbee64736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122069b082de11cf28234a75c60fa34e73e90f09ac864a4cea3c8f02e6487b74fbee64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/ObserverLibrary.sol:ObserverLibrary": {"srcmap": "99:1095:45:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;99:1095:45;;;;;;;;;;;;;;;;;", "srcmap-runtime": "99:1095:45:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fcf98ba60cba496f298757d1221a007194c155ebe10ac664b5f478f71b4031f164736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fcf98ba60cba496f298757d1221a007194c155ebe10ac664b5f478f71b4031f164736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/PackageLibrary.sol:PackageLibrary": {"srcmap": "98:6039:46:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;98:6039:46;;;;;;;;;;;;;;;;;", "srcmap-runtime": "98:6039:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;127:46;;171:2;127:46;;;;;168:25:50;;;156:2;141:18;127:46:46;;;;;;", "abi": "[{\"inputs\":[],\"name\":\"MAX_COLLABORATORS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_OBSERVERS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", "bin": "6091610038600b82828239805160001a607314602b57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c8063eb892b10146042578063ec120a00146042575b600080fd5b6049600a81565b60405190815260200160405180910390f3fea26469706673582212205aa3ccd4d106552c101c6170f4ef264bf9581ec19c3a7b940a42126181fa5c0864736f6c63430008100033", "bin-runtime": "7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c8063eb892b10146042578063ec120a00146042575b600080fd5b6049600a81565b60405190815260200160405180910390f3fea26469706673582212205aa3ccd4d106552c101c6170f4ef264bf9581ec19c3a7b940a42126181fa5c0864736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/contracts/libraries/ProjectLibrary.sol:ProjectLibrary": {"srcmap": "301:3348:47:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;301:3348:47;;;;;;;;;;;;;;;;;", "srcmap-runtime": "301:3348:47:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220776f6f4b6e258f8a33e3e90f3615192c43f9043b376b39164c3f06963a7e2a3b64736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220776f6f4b6e258f8a33e3e90f3615192c43f9043b376b39164c3f06963a7e2a3b64736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}, "/home/phong_ho/NAPA/Pioneer/buildsmartcontract/node_modules/hardhat/console.sol:console": {"srcmap": "67:63870:49:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;67:63870:49;;;;;;;;;;;;;;;;;", "srcmap-runtime": "67:63870:49:-:0;;;;;;;;", "abi": "[]", "bin": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208430b1722e0e90e38c84b47054ab15385f3b743833d4f7d7b0e7096567e42d0464736f6c63430008100033", "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208430b1722e0e90e38c84b47054ab15385f3b743833d4f7d7b0e7096567e42d0464736f6c63430008100033", "userdoc": {"methods": {}, "notice": null}, "devdoc": {"methods": {}, "author": null, "details": null, "title": null}}}} \ No newline at end of file diff --git a/deployed/upgraded_arbitrumGoerli_1676257584535.json b/deployed/upgraded_arbitrumGoerli_1676361848436.json similarity index 80% rename from deployed/upgraded_arbitrumGoerli_1676257584535.json rename to deployed/upgraded_arbitrumGoerli_1676361848436.json index 74880ae..f13e6dd 100644 --- a/deployed/upgraded_arbitrumGoerli_1676257584535.json +++ b/deployed/upgraded_arbitrumGoerli_1676361848436.json @@ -1,6 +1,6 @@ { "LearnToEarn_proxy": "0x1DAE40f862c69bAa6c1899b34e6b0595D1b39CcC", - "LearnToEarn_verify": "0xdB24E5a4353D62e382F6b71e1dC4CaFF44ddb062", + "LearnToEarn_verify": "0x3D7B83Cf8042139Ec54b6B6F5789D2046a8E4bE4", "NFTReward_deploy": "0x9b075656A75a7656749B20B3Edca1F05c6fc272B", "TokenFactory_proxy": "0x9955346c16D3805e3Fb5F84Fba9179Da209b121C", "TokenFactory_verify": "0xDd19Cf85BC9f83ab5E4C4fcD9248FC462ecd0581" diff --git a/deployed/upgraded_auroraTestnet_1676257547654.json b/deployed/upgraded_auroraTestnet_1676361808540.json similarity index 80% rename from deployed/upgraded_auroraTestnet_1676257547654.json rename to deployed/upgraded_auroraTestnet_1676361808540.json index 21dd471..57393fb 100644 --- a/deployed/upgraded_auroraTestnet_1676257547654.json +++ b/deployed/upgraded_auroraTestnet_1676361808540.json @@ -1,6 +1,6 @@ { "LearnToEarn_proxy": "0xB4501DdA26b1179914B29C00a22F67aC18fbB3EC", - "LearnToEarn_verify": "0x83E2F84DC141474Fdd1a12900fDc48d35Ff16Cec", + "LearnToEarn_verify": "0x17EaEAA01C2CffE73907Be039c09e1445FdEb69E", "NFTReward_deploy": "0x1148f77868B1F392dd1a4508B7d66041631939c2", "TokenFactory_proxy": "0xfEEaA5E390e8837B8ffcb1324D1b88090bBD4E63", "TokenFactory_verify": "0x635AA6D983E5D7Fc7ac44827d5C4048c703A62E4" diff --git a/deployed/upgraded_goerli_1676257492901.json b/deployed/upgraded_goerli_1676361686901.json similarity index 80% rename from deployed/upgraded_goerli_1676257492901.json rename to deployed/upgraded_goerli_1676361686901.json index 8dc9ab8..827b267 100644 --- a/deployed/upgraded_goerli_1676257492901.json +++ b/deployed/upgraded_goerli_1676361686901.json @@ -1,6 +1,6 @@ { "LearnToEarn_proxy": "0x9b075656A75a7656749B20B3Edca1F05c6fc272B", - "LearnToEarn_verify": "0x2e82555B18f82E91408f129577937E3C145380ec", + "LearnToEarn_verify": "0x3BC749cbcF5C6130D47978c52dAfeb566edC47EC", "NFTReward_deploy": "0xD35Eb1Bc1D82C1c31650D18A998cc7b2FCe588b2", "TokenFactory_proxy": "0xf0c39397540324d22C44f0e7583D5C03a25d352b", "TokenFactory_verify": "0x720a8D5D3A67eAa5Abb72d5525A432729c42A467" diff --git a/deployed/upgraded_mumbai_1676257422397.json b/deployed/upgraded_mumbai_1676361772195.json similarity index 80% rename from deployed/upgraded_mumbai_1676257422397.json rename to deployed/upgraded_mumbai_1676361772195.json index 2e5fe91..9d194f9 100644 --- a/deployed/upgraded_mumbai_1676257422397.json +++ b/deployed/upgraded_mumbai_1676361772195.json @@ -1,6 +1,6 @@ { "LearnToEarn_proxy": "0xE03154264512Af7a13d194B67bC24B242831166E", - "LearnToEarn_verify": "0x64f00e6b5297a5c3c6fB93145242D475df9a2910", + "LearnToEarn_verify": "0xe04391d3337D9031c7cde8985A4aC2Be092f563d", "NFTReward_deploy": "0xc1E0437e46ee7d40728F055070CBBaa293db893a", "TokenFactory_proxy": "0x409A82938cc91d9B3314c19884cda613Aaa69B7B", "TokenFactory_verify": "0x4b669F76f58183bd890Def76c3e65C95d4b5481B" diff --git a/package.json b/package.json index 5a5bca6..bfe1df5 100644 --- a/package.json +++ b/package.json @@ -46,5 +46,8 @@ "ts-node": "10.9.1", "typechain": "8.1.0", "typescript": "4.8.4" + }, + "dependencies": { + "@chainsafe/chainbridge-contracts": "^2.1.4" } } diff --git a/scripts/upgrade-learn-to-earn.ts b/scripts/upgrade-learn-to-earn.ts index 29923f0..a36c113 100644 --- a/scripts/upgrade-learn-to-earn.ts +++ b/scripts/upgrade-learn-to-earn.ts @@ -2,7 +2,7 @@ import { ethers, upgrades, network, run } from "hardhat"; import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers"; import { LearnToEarn, LearnToEarn__factory } from "../typechain-types"; import { Table } from "./utils"; -import * as contractAddresses from "../deployed/polygonMumbai_1675766902630.json"; +import * as contractAddresses from "../deployed/mumbai_1675861179741.json"; const table = new Table(); From a09a447a914ea378e48b60ed11237d8a394a7e5f Mon Sep 17 00:00:00 2001 From: phongho01 Date: Thu, 16 Mar 2023 16:35:23 +0700 Subject: [PATCH 08/15] update github action --- .github/workflows/SlitherAnalyzer.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/SlitherAnalyzer.yml b/.github/workflows/SlitherAnalyzer.yml index e35645a..f677e74 100644 --- a/.github/workflows/SlitherAnalyzer.yml +++ b/.github/workflows/SlitherAnalyzer.yml @@ -9,6 +9,7 @@ jobs: analyze: runs-on: ubuntu-latest permissions: + actions: read contents: read security-events: write steps: From b6d1063e2cd75eddfb10072a88232b7f3d9637c4 Mon Sep 17 00:00:00 2001 From: phongho01 Date: Thu, 16 Mar 2023 16:41:02 +0700 Subject: [PATCH 09/15] update github action --- .github/workflows/SlitherAnalyzer.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/SlitherAnalyzer.yml b/.github/workflows/SlitherAnalyzer.yml index f677e74..240f289 100644 --- a/.github/workflows/SlitherAnalyzer.yml +++ b/.github/workflows/SlitherAnalyzer.yml @@ -27,9 +27,10 @@ jobs: npm install - name: Run Slither - uses: crytic/slither-action@v0.2.0 + uses: crytic/slither-action@v0.3.0 id: slither with: + node-version: 16 sarif: results.sarif fail-on: none From 30b08d9ae3f3701cc1adc0786cc069751ae4c12f Mon Sep 17 00:00:00 2001 From: phongho01 Date: Fri, 17 Mar 2023 13:46:37 +0700 Subject: [PATCH 10/15] fix cicd --- .github/workflows/SlitherAnalyzer.yml | 5 +++++ contracts/test.py | 31 --------------------------- 2 files changed, 5 insertions(+), 31 deletions(-) delete mode 100644 contracts/test.py diff --git a/.github/workflows/SlitherAnalyzer.yml b/.github/workflows/SlitherAnalyzer.yml index 240f289..180cf1c 100644 --- a/.github/workflows/SlitherAnalyzer.yml +++ b/.github/workflows/SlitherAnalyzer.yml @@ -15,6 +15,11 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3 + + - name: "Initialize CodeQL" + uses: "github/codeql-action/init@v1" + with: + languages: ${{ matrix.language }} - name: Setup node LTS uses: actions/setup-node@v3 diff --git a/contracts/test.py b/contracts/test.py deleted file mode 100644 index b598c58..0000000 --- a/contracts/test.py +++ /dev/null @@ -1,31 +0,0 @@ -import echidna -from echidna import test, property - -echidna.config.ENVIRONMENT = "debug" - -contract_source = "" - -def test_set_value(): - # Create a new instance of the contract - my_contract = MyContract() - - # Set the value to 42 - my_contract.setValue(42) - - # Assert that the value was set correctly - assert my_contract.value == 42 - -# Define the Echidna property function -@property -def value_is_greater_than_100(): - # Create a new instance of the contract - my_contract = MyContract() - - # Set the value to 42 - my_contract.setValue(42) - - # Assert that the value is greater than 100 - assert my_contract.value > 100 - -# Compile and run the tests -echidna.testing.TestBuilder().build_and_run(contract_source) \ No newline at end of file From 50dbd9d2544dbb8a0be6b2f91d8993dbe6c09507 Mon Sep 17 00:00:00 2001 From: phongho01 Date: Fri, 17 Mar 2023 13:49:57 +0700 Subject: [PATCH 11/15] fix --- .github/workflows/SlitherAnalyzer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/SlitherAnalyzer.yml b/.github/workflows/SlitherAnalyzer.yml index 180cf1c..432af3e 100644 --- a/.github/workflows/SlitherAnalyzer.yml +++ b/.github/workflows/SlitherAnalyzer.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v3 - name: "Initialize CodeQL" - uses: "github/codeql-action/init@v1" + uses: "github/codeql-action/init@v2" with: languages: ${{ matrix.language }} From 3ad2940522c4c25f0c13c0f1c3630791fc92b31a Mon Sep 17 00:00:00 2001 From: phongho01 Date: Fri, 17 Mar 2023 13:57:57 +0700 Subject: [PATCH 12/15] fix cicd --- .github/workflows/SlitherAnalyzer.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/SlitherAnalyzer.yml b/.github/workflows/SlitherAnalyzer.yml index 432af3e..41a71bc 100644 --- a/.github/workflows/SlitherAnalyzer.yml +++ b/.github/workflows/SlitherAnalyzer.yml @@ -16,11 +16,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: "Initialize CodeQL" - uses: "github/codeql-action/init@v2" - with: - languages: ${{ matrix.language }} - - name: Setup node LTS uses: actions/setup-node@v3 with: From 70b9d03ab2752e3b0961eb3d2155257fd85de233 Mon Sep 17 00:00:00 2001 From: phongho01 Date: Fri, 17 Mar 2023 14:30:54 +0700 Subject: [PATCH 13/15] test echidna --- .github/workflows/Echidna.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Echidna.yml b/.github/workflows/Echidna.yml index f51a7d1..90c7a6c 100644 --- a/.github/workflows/Echidna.yml +++ b/.github/workflows/Echidna.yml @@ -30,5 +30,5 @@ jobs: solc-version: 0.8.16 files: . contract: ReBakedDAO - test-mode: exploration + test-mode: optimization crytic-args: --hardhat-ignore-compile \ No newline at end of file From 88dd4cff759db6b93435bf8826b24ae866c0e150 Mon Sep 17 00:00:00 2001 From: phongho01 Date: Fri, 17 Mar 2023 14:57:45 +0700 Subject: [PATCH 14/15] testing dapptest mode --- .github/workflows/Echidna.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Echidna.yml b/.github/workflows/Echidna.yml index 90c7a6c..2d4fd71 100644 --- a/.github/workflows/Echidna.yml +++ b/.github/workflows/Echidna.yml @@ -30,5 +30,5 @@ jobs: solc-version: 0.8.16 files: . contract: ReBakedDAO - test-mode: optimization + test-mode: dapptest crytic-args: --hardhat-ignore-compile \ No newline at end of file From e21e7a1f25f4b240772667bda95b791ea99694f9 Mon Sep 17 00:00:00 2001 From: phongho01 Date: Fri, 17 Mar 2023 15:14:38 +0700 Subject: [PATCH 15/15] change testing mode --- .github/workflows/Echidna.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Echidna.yml b/.github/workflows/Echidna.yml index 2d4fd71..e8c447f 100644 --- a/.github/workflows/Echidna.yml +++ b/.github/workflows/Echidna.yml @@ -29,6 +29,6 @@ jobs: with: solc-version: 0.8.16 files: . - contract: ReBakedDAO - test-mode: dapptest + contract: LearnToEarn + test-mode: exploration crytic-args: --hardhat-ignore-compile \ No newline at end of file